0

I have tested with geth using --datadir and found that if I have more than one node created using

personal.newAccount 

then the account data is not shared.

This seems confusing to me. I believed the point of the EVM was to share all the account data and hence we can interrogate any node and get the full data for that block.

It brings me to question how the account is kept and where. It clearly is not kept in a block, or a contract, so it is kept in some kind of node storage?

Has anyone details of how the account is stored and why that data is not accessible by any node without an explicit reference to the node holding the account?

  • Hi there. Have you actually used these addresses? If you haven't sent anything to/from an address/account, then it won't show up in the chain data. All you've done by running newAccount is generate a key pair that equates to a particular address. – Richard Horrocks Mar 30 '18 at 13:41
  • I am just mining now. I did not send. But my issue was that I thought that the account would be network known and not node dependent. So does the EVM scan all nodes for a sendTransaction looking for the accounts? – Trevor Lee Oakley Mar 30 '18 at 13:56
  • When you successfully mine a block, your coinbase address will be added to the block header. The block will then be propagated to the network, and the network will learn that your address exists. (Technically all addresses exist, always. Specifically, the network will learn that someone owns the private key to that address.) Once an account has been used, it will have an entry in the state data. Until your account/address has been used, no one can know that you own the private key. – Richard Horrocks Mar 30 '18 at 14:15
0

When using --datadir you are able to run nodes with different databases. But this does not mean different blockchain, just different local database.

What you need to understand is that creating accounts can be done offline. The network is not asked to create an account, nor it is registered on the network.

Creating an account means you created a private key. That is done locally. Until the account interacts with the network (i.e. sends or receives ETH) the network does not know it exists.

In your case you created a few accounts but never interacted with the network, so they don't have a footprint yet. They exist but never interacted with the network, hence the network doesn't have any record of them.

To come back to your question

Why is eth.coinbase node based and not blockchain based?

eth.coinbase is an account you created on your node and it's purpose is to receive the mined ether. You never mined a block, so it never received ETH.

Creating an account and interacting with the network is permissionless. You're not asking the network to give you access, that will never happen. That's why the network doesn't know about your account until there's a footprint containing the account.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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