In that case, the genesis block description provided by —config will be overwritten by the —genesis option. You either pre-generate or mine your own ether on a private testnet. It is a much more cost effective way of trying out Ethereum and you can avoid having to mine or find Morden test ether. The genesis block is the start of the blockchain - the first block, block 0, and the only block that does not point to a predecessor block.
Save a file called CustomGenesis. You will reference this when starting your geth node using the following command:. By default geth will use the same directory for network related files as for the public mainnet. We already covered the genesis flag, but we need a few more. Note that all of the commands below are to be used in the geth Ethereum client. Use this to make sure that your node is not discoverable by people who do not manually add you. Use maxpeers 0 if you do not want anyone else connecting to your test chain.
Alternatively, you can adjust this number if you know exactly how many peers you want connecting to your node. By default, Geth enables the web3 interface over RPC. This is the data directory that your private chain data will be stored in under the nubits.
Choose a location that is separate from your public Ethereum chain folder. This will set up an identity for your node so it can be identified more easily in a list of peers. Here is an example of how these identities show up on the network. After you have created your custom genesis block JSON file and created a directory for your blockchain data, type the following command into your console that has access to geth:.
If you create your chain and start mining, you should have hundreds of ether in a matter of minutes which is way more than enough to test transactions on your network.
If you would still like to pre-allocate Ether to your account, you will need to:. Replace 0x1fbf92ebf4dd0d7cb5a with your account address. Save your genesis file and rerun your private chain command. By default, Geth enables the web3 interface over RPC. Be careful which API's you enable. Change to any port that is open on your network. The default for geth is and althzero is Since this is a private chain that will not hold real Ether, I usually put a wildcard so I can use sites such as Browser Solidity or DApps like Notareth.
When you build DApps outside of Mist or Alethzero, you will need to connect your website to an Ethereum node. This is the data directory that your private chain data will be stored in. Choose a location that is separate from the public Ethereum chain folder. This is the "network listening port", which you will use to connect with other peers manually.
Here is an example of how these identities show up on the network. You will need to start your geth instance with your custom chain command every time you want to access your custom chain.
After you have created your custom genesis block JSON file and created a directory for your chain to go into, type the following command into your console that has access to geth:. If you just type "geth" in your console, it will not remember all of the flags you have set.
Different operating systems have ways to make this easier. Most allow you to make a shortcut file that will automatically open a console window and run commands that you specify. On Windows systems, look up how to create a. There is a --verbosity flag that will allow you to decide how much of the inner working of Geth are shown when youa re running Geth in your console. It can be compared to a log-level flag that you may find on other programs. If is possible to have 2 console windows open with different levels log levels.
I do this because if I have my miner running on my first console window, it will sometimes be spitting out log details too fast for me to type commands cleanly. This will connect your 2nd console to the Geth instane on your first console.
If you create your chain and start mining, you should have hundreds of Ether in a matter of minutes which is way more than enough to test transactions on your network.
If you would still like to pre-allocate Ether to your account, you will need to:. Replace 0x1fbf92ebf4dd0d7cb5a with your account address. Save your genesis file and re-run your private chain command. Once geth is fully loaded, close Geth. Run the command geth account list in your console to see what account your new address was assigned. This console command should return your primary Ethereum address. This should return you 20 Ether in your account. Geth supports a feature called static nodes if you have certain peers you always want to connect to.
Static nodes are re-connected on disconnects. See this page for more information. If you are putting your node on an external server like AWS, DigitalOcean, or another VPS, you may want to put your geth process in the background so Geth doesn't shut down once you close your console window.
There are many ways to do this. Your console output is placed in a nohup logfile in the directory that you ran nohup from.