7
votes
Accepted
What is parity bootnode role in a private network an how should I setup it?
Bootnodes are the nodes which provide information about other peers, txns, blocks. Once that information is received, bootnode does not need to be online. But bootnodes are always kept online, because ...
7
votes
What are the peer discovery mechanisms involved in Ethereum?
The accepted answer is not correct. The bootnodes are unreliable. A node can get blacklisted from the bootnodes and the bootnodes are sometimes unavailable without any apparent reason.
The Ethereum ...
6
votes
Why is Geth ignoring --nodiscover?
I've had the same issue. It appears that --nodiscover is just disabling your node from running node-discovering algorithm to find peers to connect, but it doesn't prevent others from discovering and ...
6
votes
Accepted
How do nodes find peers without bootnodes?
yes there is some built-in bootstrap nodes you could check the code in github :
Geth :
https://github.com/ethereum/go-ethereum/blob/ff2c966e7f0550f4c0cb2b482d1af3064e6db0fe/params/bootnodes.go
// ...
5
votes
Is there a way to export/import peers?
As i know there is not built in option to do so, however you could do it using a script : i am trying here to give you some response elements. the following snippet to output all the connected peers
...
4
votes
Accepted
Node discovery: unreachable bootnode in private distributed network
Well, apparently the reason why the connection is being refused is that "'Connection refused' is ok for the Go bootnode. [as i]t does not accept TCP connections", as suggested by fjl in the go-...
4
votes
Where can I find the DHT in my system?
These are stored in the the ~/.ethereum/nodes/ directory as a LevelDB database (in .ldb files). The reading and writing of these files is handeled by database.go.
To read them you'd need a tool which ...
4
votes
Accepted
Is it possible to tell which node broadcast a transaction?
I assume that with "address" you mean IP address? IP addresses are exposed when running a node (Node's IP exposed). You can of course get some information based on an IP (geolocation for example) ...
3
votes
Accepted
How to distinguish between ETH & ETC Node
Unfortunately there is no way to differentiate between ETH & ETC peers at the P2P layer due to the fact that most client implement eth/63, which would defines STATUS 0x00 as
[protocolVersion: P,...
3
votes
Accepted
Best Discovery Protocol implementation
You can use implementations of existing clients:
Besu - Java implementation
Geth - Go implementation
Parity1 - Rust implementation
1 At this point, I would be careful to use Parity's implementation ...
3
votes
Accepted
How to get Nodes on local Geth Private Network to Discover Peers OF THEIR PEERS
Bootnodes is a cheap and effective solution to aid the network self-discovery, but they need to catch up with a proper genesis file to isolate your network.
When you run geth, the genesis block is ...
3
votes
Accepted
Does --nodekey work with geth or just bootnode?
Yes geth --nodkey=key.txt will (re)generate the same enode url repeatedly as the cli options would suggest. It wasn't working for me due to the unfortunate combination of a typo in my sh script and a ...
3
votes
How many bootnodes are hardcoded into Ethereum clients?
Have a look in bootnodes.go. It's still 3 for the Geth clients:
// ETH/DEV Go Bootnodes
discover.MustParseNode("enode://...
3
votes
Accepted
How to retrieve IP address and Port from Ethereum Node Records (ENR)?
There is also a rust enr-cli library to assist with decoding ENR strings.
You can install it via cargo install enr-cli --version 0.1.0-alpha
An example of its use is:
$ enr-cli -e -...
2
votes
Sharing enodeURLs on a private blockchain
I'd consider using a distributed key-value store such as ETCD (https://coreos.com/etcd/docs/latest/getting-started-with-etcd.html). You could set up an ETCD alongside ethereum and share arbitrary data ...
2
votes
Accepted
Adding nodes in private network of docker containers hosted in different VMs
Prepare your nodekey for each node in advance. It is just a 512-bit random number. Then store them somewhere, along with the public ECDSA keys derived from there.
The public keys are the components ...
2
votes
addPeer doesn't work
I have met the same problem and now I have solved it trough delete the director "datadir" which in your case is ".". Then I reinit with the json document again.Going down the steps, maybe it will ...
2
votes
Accepted
Discovery Protocol Broadcasting
Correct. Ethereum node discovery works by nodes gossiping enode addresses between each other, so you have to connect to at least one node manually. The mainnet/testnets get around this inconvenience ...
2
votes
Accepted
Do bootnodes require trust?
Generally speaking, the answer is yes, there needs to be some sort of trust in the Ethereum network as a whole, i.e. there are more good people than bad.
Yuval Marcus, Ethan Heilman and Sharon ...
2
votes
Accepted
How many nodes does Geth attempt to connect to by default?
Geth attempts to connect to 25 peers by default, as stated on the CLI commands page.
This can be changed with:
--maxpeers value Maximum number of network peers (network disabled if set to 0) (...
2
votes
How to retrieve IP address and Port from Ethereum Node Records (ENR)?
You can use the enr library (written in rust).
use enr::Enr;
fn main() {
let enr_string = "-Iu4QGuiaVXBEoi4kcLbsoPYX7GTK9ExOODTuqYBp9CyHN_PSDtnLMCIL91ydxUDRPZ-jem-...
1
vote
how do I know which node picks up my transaction? in general, how is a node assigned to broadcast a specific transaction?
You're missing the blockchain concept.
Transactions are processed on all nodes. Mining determines the order of the transactions all nodes eventually agree on. This is not the same thing as a node ...
1
vote
Accepted
How a node getting the last block?
Full nodes are constantly syncing. When a miner mines a block, it transmits it to the network. When you call web3.eth.getBlockNumber() to a full node, it already knows what the latest block it knows ...
1
vote
Target addresses in Kademlia
It performs this lookup with its own address as target address only when the table is empty.
1
vote
Accepted
Node Discovery Protocol - Node Table entries
You must understand that the distant it can be simple interpret as the different of bit. Let's say n1 = 0x80 which in bit is 1000 0000. So the distant for each ith is this routing table:
0th 1000 ...
1
vote
Bootnode Discovery with external IPs instead of local ones
So here is how I solved my issue. I host my kubernetes cluster in google cloud, but the same concepts should apply to any provider.
First I created the clusters within a predefined VPC with subnets. ...
1
vote
Different comportement when bootnodes are set in command line and in static-nodes.json
At least one difference between the two is that the --bootnodes argument sets explicitly the boot node addresses, whereas the static-nodes.json file sets the addresses of static full nodes (peers).
1
vote
Why is Geth ignoring --nodiscover?
You could give your node a nodekey (see --nodekey) and set it as bootnode (see --bootnodes). See also the bootnode executable for how to easily create a nodekey and the associated enode URL.
With ...
1
vote
Private Blockchain - Nodes Lose Connectivity
Yes, you enable tracing on the node for the sync module, like that:
parity -l sync=trace
This will produce a lot of noise, but you will be able to see why nodes are talking to each other, or why not....
1
vote
How to have two geth full nodes communicate over ssh tunnel
The default port used by geth to intercommunicate between nodes is 30303. One you have stablished the tunnel using ssh between the nodes, you have to let the nodes know about each other. See the ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
node-discovery × 59go-ethereum × 22
discovery-protocol × 16
private-blockchain × 13
bootnodes × 13
peers × 12
openethereum × 10
nodes × 8
network × 7
enode × 7
devp2p × 7
p2p × 5
rlpx × 4
light-clients × 3
connections × 3
transactions × 2
synchronization × 2
docker × 2
ethernodes × 2
wallets × 1
javascript × 1
pending-transactions × 1
geth-debugging × 1
nonce × 1
txpool × 1