Ethereum private chain
solve the problem in an all-round way
1. Miracle Moore's Linux kernel has been deeply optimized for more than 200 times to avoid the problem that some hardware failures will directly lead to system crash
2. In view of the situation that many mining software in the market can't connect to the mining pool after restart, miracle Moore perfectly solves the problem by using the function of resetting the image after each restart of the mining machine
3. After testing, the average computing power error and delay share of miracle Moore system in each mine pool are not more than 1.5%, which significantly improves the mining revenue of users
4. After numerous experiments, miracle Moore development team has obtained the optimized VBIOS overclocking setting of graphics card. Compared with the traditional overclocking method, it can further improve the computing power of graphics card by 5% and rece the power consumption by 15%!
make: * * [geth] error 1
there is no such directory, or the directory has insufficient permissions
The public chain is open to all, the private chain is open to indivials who meet specific conditions, and the alliance chain is open to authorized organizations or institutions
public chain, also known as public blockchains, refers to a consensus blockchain that can be read by anyone in the world, sent by anyone, and effectively confirmed
private chain, also known as fully private blockchains, refers to the blockchain in which the write permission is completely in the hands of an organization, and all nodes participating in the blockchain will be strictly controlled
alliance chain, or alliance blockchains, refers to a blockchain that is managed by several organizations or institutions. Each organization or institution controls one or more nodes and records transaction data together. Only these organizations and institutions can read, write and send transaction data in the alliance chain
< H2 > extended data:
blockchain has three types: public chain, private chain and alliance chain
blockchain is a new application mode of distributed data storage, point-to-point transmission, consensus mechanism, encryption algorithm and other computer technologies
blockchain is an important concept of bitcoin. It is essentially a disintermediated database. At the same time, as the underlying technology of bitcoin, it is a series of data blocks generated by using cryptographic methods. Each data block contains the information of a bitcoin network transaction, Used to verify the validity of its information (anti-counterfeiting) and generate the next block
< H2 > reference: blockchain networkprogram developers have no right to interfere with users, and each participant (i.e. node) can freely join and exit the network, and carry out relevant operations according to their wishes
private blockchain is on the contrary. The write permission of the network is fully controlled by an organization or institution, and the data read permission is regulated by the organization, either open to the outside world or with a certain degree of access restrictions
in short, it can be understood as a weakly centralized or multi centralized system. Because the participating nodes are strictly limited and few; Compared with public chain, private chain has shorter time to reach consensus, faster transaction speed, higher efficiency and lower cost
the alliance chain is a blockchain between the public chain and the private chain, which can realize "partial decentralization"
each node in the chain usually has its corresponding entity or organization; Participants join the network through authorization and form a stakeholder alliance to jointly maintain the operation of the blockchain.
first, you need to create a "Genesis" JSON configuration file, which describes some parameters of the genesis block. The following is the content of the file:
{
& quot; coinbase": & quot;& quot;,< br />" config": {< br />" homesteadBlock": 5
},
" difficulty": & quot; 0x20000",< br />" extraData": & quot; 0x",< br />" gasLimit": & quot; 0x2FEFD8",< br />" mixhash": & quot;& quot;,< br />" nonce": & quot; 0x0",< br />" parentHash": & quot; 000000000000000000000000",< br />" timestamp": & quot; 0x00",< br />" alloc": {< br />"& quot;:< br />{
" balance":& quot;& quot;
}
}
} 1234567891011213141516171819
the above code into a text file and name it genesis.json
Genesis!:
in order not to conflict with the data of the main chain, it is recommended to establish your own private chain data folder. On my computer, I built an ethdbspace as the Ethereum experimental work area on disk e, and created a privchain folder as the data storage folder of my first private chain
here, in order to facilitate management, I put genesis.json under the ethdbspace folder
open the windows command line
type the following command
geth -- dataDir & quot; E:\ EthDBSpace\ PrivChain" init " E:\ EthDBSpace\ genesis.json" 1
– the dataDir option is used to specify the data directory of our private chain. On my computer, it's E: &; EthDBSpace\ Privchain
init is the genesis command, followed by our Genesis configuration file path
after clicking enter, the execution result is as follows
at this time, genesis is complete
create an account:
in order to do experiments on the private chain, we also need to create our own account on the private chain
windows command line, type
geth -- dataDir & quot; E:\ EthDBSpace\ PrivChain" Console1
we have successfully created the world, so when we enter the client for the second time, we do not need to specify the genesis.json file path again, but directly – dataDir to indicate the private link data path
the console command is used to open the command line of geth
after clicking enter, the client will be initialized for a while. After the command prompt appears, it means that you have entered the geth console
type
personal. Newaccount (& #) in the geth command line; Your Password') 1
the personal.newaccount function is used to create an account, in which the parameter is the account password.
after clicking enter, the account creation address will be listed in green below the command, that is, the public key of the account.
we can check the account balance first, In the geth command line, type:
My = eth. Accounts [0]
eth. Getbalance (my) 12
My = eth. Accounts [0]. The purpose of this sentence is to assign the account address we just created to my variable. This can simplify the subsequent account address input. Among them, eth.accounts records the addresses of all accounts on this machine. Since we created an account for the first time, there is only one account on the computer at present. So here we use eth. Accounts [0] to extract the first account address. The eth.getbalance function is used to obtain the account balance, and the parameters are filled in the account address. The my variable here records the address of the first account
I hope my answer can help you