A brief about my setup. I am using a private Ethereum network with 3 nodes. I have made all the nodes as peers of each other by using: admin.addPeer("enode:1234abcd..")

When mining takes place, all the nodes are in sync.

I have also noticed that the accounts created on one node are local to the same node. So the accounts created on one node are available on the same node and not with any of its peers.

However, I am able to process transactions between accounts of different nodes using. eth.sendTransaction({from:sender, to:receiver, value: amount})

Now my questions are:

  • How does the network know which node to query for the presence of the account?
  • Are all the nodes checked for the presence of 'sender' and 'receiver' account?
  • Does the transaction time increase if more peers are added to the network?
  • Will it affect the security of my network if I transport the keyfiles of accounts created on one node to all the other nodes?

1 Answer 1

  • Transactions are signed by a private key, which create a signature. Given the transaction data and the signature, the node can derive the public address of the signer and can verify the transaction. The "sender" is the signer, which is the private key. The network doesn't care who is in "possession" of the account. The blockchain is a ledger that maps public addresses to the processed transaction values and it doesn't matter where the transaction came from. It simply checks that the signer is legitimate by comparing the signature signer to the from public address. I'm of course simplifying a lot of this but the point is that the network doesn't care which node has the private key. You can sign the transaction from one node, or offline, or from pluto, and then give the signed transaction to a different node to broadcast it, and it'll work.
  • No the nodes are not checked for the presence of the account.
  • No the transaction time in based on block difficulty which is how long a miner or pool of miner takes to mine a block which is estimated around to be always around 15 seconds. However the network can become congested if there are a ton more transactions then it can it handle and by that I mean that there's limitations to how many transactions can fit in a block, so if there's too many transaction then a lot of transactions linger around in a pool (called a mempool) of transactions waiting to be picked up and mined (included in a block).
  • As long as the keystore files are encrypted and transferred over TLS than it's secure to transport them.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.