Principle of Ethereum nonce
mainstream digital currencies such as bitcoin, Puyin, Laite, Ethereum and dogcoin all exist in wallets, and wallets existed before the release of such currencies.
many new users believe that the sole purpose of mining is to generate ether in a way that does not require a central issuer (see our guide "what is ether?"). It's true. The token of Ethereum is proced in the process of mining, with a mining rate of 5 Ethereum coins per piece. But mining is at least as important. Usually, banks are responsible for keeping accurate records of transactions. They make sure that money is not created out of thin air and that users don't cheat and spend money many times. However, blockchain introces a new way to keep records, the whole network instead of intermediary, to verify transactions and add them to the public ledger
Ethereum mining
although "no trust" or "trust minimization" monetary system is the goal, there are still people who need to ensure the security of financial records and ensure that no one cheats. Mining is one of the innovations that makes decentralized records possible. Miners have reached a consensus on the history of transactions in terms of preventing fraud (especially double spending on ether) - an interesting issue that hasn't been addressed before the decentralized currency works on the blockchain. While Ethereum is looking at other ways to reach a consensus on the effectiveness of the deal, mining currently keeps the platform together
how mining works
today, the mining process of Ethereum is almost the same as that of bitcoin. For each transaction, the miner can use the computer to guess the answer repeatedly and quickly until one of them wins. More specifically, the miner will run the unique header metadata (including time stamp and software version) of the block through the hash function (which will return a fixed length, unordered string of numbers and letters, which appears to be random), changing only the 'nonce value', which will affect the hash value of the result
if the miner finds a hash that matches the current target, the miner will be granted ether and broadcast the block across the network for each node to verify and add to their own ledger . If miner B finds the hash, miner a stops working on the current block and repeats the process for the next block. It's hard for miners to cheat in this game. There is no way to fake the work and come up with the right answer to the puzzle. That's why solving puzzles is called "proof of work."
on the other hand, others have little time to verify whether the hash value is correct, which is exactly what each node does. About every 12-15 seconds, a miner finds a stone. If the miner starts to solve the puzzle faster or slower than this, the algorithm will automatically re adjust the difficulty of the problem so that the miner can rebound to about 12 seconds of solution time
miners earn these ethers randomly, and their profitability depends on their luck and the computing power they put in. The specific workload verification algorithm used by Ethereum is called "ethash", which aims to require more memory, making it difficult to mine with expensive ASIC. Special mining chips are now the only profitable way to mine bitcoin
in a sense, ethash may have achieved this goal successfully, because dedicated ASIC is not available for Ethereum (at least not yet). In addition, as Ethereum aims to shift from proof of work mining to "proof of equity" (which we will discuss below), buying ASIC may not be a wise choice because it may not prove useful for a long time< However, Ethereum may never need miners. Developers plan to abandon proof of work, the algorithm currently used by the network to determine which transactions are valid and protect them from tampering to support proof of equity, which is guaranteed by token owners. If and when the algorithm is launched, proof of equity can become a means to achieve distributed consensus, and the consensus uses less resources.
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
Differences:
1. Different link sources
eth trunk: generally refers to the link aggregation of the same device. A switch binds multiple interfaces to form an eth trunk interface, so as to achieve the purpose of increasing bandwidth and improving reliability
e-trunk (enhanced trunk): generally refers to cross device link aggregation, which is a mechanism to realize cross device link aggregation. Based on LACP (single device link aggregation standard), it is extended to realize link aggregation among multiple devices. Thus, the link reliability is improved from the board level to the device level
2. Different advantages
eth trunk: load sharing can be realized through trunk interface. In an eth trunk interface, traffic load sharing can be realized. When the physical link connected by a member interface fails, the traffic will switch to other available links, so as to improve the reliability of the whole trunk link. The total bandwidth of trunk interface is the sum of the bandwidth of each member interface
e-trunk (enhanced trunk): it is mainly used for the link protection between CE and PE and the protection of PE equipment node failure when CE al homing access VPLS, Vll and PWE3 networks. Before e-trunk is used, CE can only return to one pe device through eth trunk link
If eth trunk fails or PE equipment fails, CE will not be able to continue to communicate with PE equipment. After using e-trunk, CE can be returned to PE, so as to realize the protection between devices
extended data
port aggregation is the aggregation of multiple ports to form a aggregation group, so as to realize the load sharing among the member ports in the aggregation group, and also provide higher connection reliability. Both e-trunk and eth trunk are link aggregation technologies
in some three-tier data center networks, the core layer is composed of two ce12800, and two 10GE links are aggregated between the two devices, so as to ensure the high reliability of the links. The convergence layer uses ce12800 switch stack to achieve rendant backup, and the stack is connected with upstream and downstream devices through cross frame eth trunk
at the same time, through the traffic local priority forwarding function of eth trunk, the bandwidth load of inter frame link is reced. The aggregation layer creates VRF to isolate service network segment route and public network route, and deploys firewall by side. Two firewalls carry out hot backup to ensure high reliability
eth0 to awk for processing
where - F & # 39;:|< br />+'
this is a separator defined by awk and then matched with "BCAST & quot;, Take the content of the fourth column
since your command is not universal, you can't output the result here, but you should intercept the broadcast address
Transaction
the behavior of blockchain transaction follows different rule sets
< UL >e to the distributed and unlicensed nature of public blockchain, anyone can sign the transaction and broadcast it to the network
according to different blockchains, traders will be charged a certain transaction fee, which depends on the needs of users rather than the value of assets in the transaction
blockchain transactions do not require any central authority verification. It only needs to use the digital signature algorithm (DSA) corresponding to its blockchain to sign it with the private key
once a transaction is signed, broadcast to the network and mined into a successful block in the network, the transaction cannot be recovered
Ethereum transaction structure
Ethereum transaction data structure: transaction 0.1 eth
{& 39; nonce': 39; 0x00', // Decimal: 0
& 39; gasLimit': 39; 0x5208', // Decimal system: 21000
& 39; gasPrice': 39; 0x3b9aca00', // Decimal system: 10000000000
& 39; to': 39; 39; ,// Sending address
& 39; value': 39; 0x16345785d8a0000',// 100000000000000000 ,10^17
' data': 39; 0x', // Decimal representation of null data; chainId': 1 / / blockchain network ID
}
these data have nothing to do with the transaction content, but have something to do with the execution mode of the transaction. This is because when you send a transaction in Ethereum, you must define some other parameters to tell miners how to handle your transaction. Transaction data structure has two attribute designs & quot; gas": & quot; gasPrice",& quot; gasLimit"
" gasPrice": The unit is Gwei, which is 1 / 1000 eth, indicating the transaction cost
& quot; gasLimit": The maximum gas charge allowed for the transaction
these two values are usually filled in automatically by the wallet provider
in addition, you need to specify which Ethereum network to execute the transaction (chainid): 1 represents the Ethereum main network
ring development, tests are usually carried out locally and on the test network, and transactions are carried out through the test eth issued by the test network to avoid economic losses. After the test, enter the main network transaction
in addition, if you need to submit some other data, you can use & quot; data" And & quot; nonce" Attach as part of a transaction
a nonce (number used only once) is the value used by Ethereum to track transactions, which helps to avoid double spending and replay attacks in the network
Ethereum transaction signature
Ethereum transaction involves ECDSA algorithm. Taking JavaScript code as an example, the popular ethers.js is used to call ECDSA algorithm for transaction signature
you can use the online application composer to deliver signed transactions to Ethereum. This is known as "offline signature.". Offline signatures are particularly useful for applications such as status channels, which are smart contracts that track the balance between two accounts and transfer funds after a signed transaction is submitted. Offline signature is also a common practice in dexes
you can also use online wallet to create signature verification and broadcast through Ethereum account
with Portis, you can sign a transaction to interact with the gas station network (GSN)
< / UL >
the Xueshuo innovation blockchain Technology Workstation of Lianqiao ecation online is the only approved "blockchain Technology Specialty" pilot workstation of "smart learning workshop 2020 Xueshuo innovation workstation" launched by the school planning, construction and development center of the Ministry of ecation of China. Based on providing diversified growth paths for students, the professional station promotes the reform of the training mode of the combination of professional degree research, proction, learning and research, and constructs the applied and compound talent training system