current position：Home>When mining with code, why do you have to convert it into JSON format and sort it when hashing?
When mining with code, why do you have to convert it into JSON format and sort it when hashing?
2022-02-03 20:53:11 【Q & A of Denglian community】
use Python Create blockchain from scratch In the article .
When mining with code , Why do you have to convert to... When hashing json Format ( Why not use a dictionary directly ), And sort ？ The code is as follows :
def last_block_hash(self,block): block_str = json.dumps(block,sort_keys=True).encode('UTF-8') return hashlib.sha256(block_str).hexdigest()
Why can't the above code directly apply to block Dictionary search hash Is it worth it ？ But to be converted into json Format and sort before hash What about computation ？
Take the answer 1：
hashlib.sha256 The type of the parameter is string , So you need to do a type conversion .
python The dictionary itself is json form , So convert to json character string .
The reason for sorting is ： Because of the dictionary It's out of order , Because of different series, the same dictionary will produce different hash value , After the sorting , From the same dictionary hash It's the same .
author[Q & A of Denglian community],Please bring the original link to reprint, thank you.
The sidebar is recommended
- What else does the meta universe lack? Immersive sound hasn't been customized for avatars yet
- Ethereum web3js calls smart contract and does not return transaction hash
- How is Block 0 confirmation implemented
- What are the testing tools for Ethereum smart contract?
- Why can't I display pictures in my wallet when I bind the tokenid with the hash returned from uploading to IPFs?
- TransferHelper: TRANSFER_ FROM_ FAILED
- How to solve the problem of solidness version and package?
- How can a token in Tron wave field and TRX Group LP, pair contract obtain the quantity of a token through LP?
- Using openzepplin library contract
- What was the initial POS consensus agreement?
guess what you like
Introduction to blockchain
What progress has filecoin made so far?
What are the impacts of Libra compared with DCEP?
What is a token in the blockchain?
Is there any material that can make Xiaobai learn blockchain quickly?
How to validate smart contracts?
Can Ethereum's official wallet password be restored if you forget it?
What is BiP
How to convert byte type to integer uint in solidity
How to convert bytes type into address type in solidity
- How to distinguish between contract address and ordinary account address?
- Can this be used in the smart contract constructor?
- Convert uint to bytes in solidity
- What does gas in Ethereum mean?
- How is the Ethereum contract address calculated?
- What Ethereum projects are suitable for beginners to learn solidity?
- Why create a new contract language, solid, instead of using other existing languages
- Can I get the hash of the transaction in the solidity function?
- How to delete an element at a certain position in an array in solidity?
- Does solid have a simple and universal storage model?
- Solidity: what is the difference between 'view' and 'constant'?
- How to determine whether a key exists in a mapping? Struct is defined in the library (in solidity).
- How does Sha3 / keccak256 in solidity calculate the cell hash value?
- Return and read a structure through Web3
- How do I know the compiled version of solidity I'm using
- What is an event?
- Should we use the private matemask node
- How to build a usdt wallet node based on erc20
- ZK snark how to set CRS if there is cyclic logic in the circuit
- Teacher, I got the value with Web3 according to your video tutorial, but when calling setinfo with Web3, an error is reported when the set value is set. What is the reason?
- When setting the default initiating account, the console reports an error: Web3 eth. defaultAccounts is not a function
- Accounts has been unable to get the local address.
- Metamask is connected to the local network. Why can't Web3 use the default address?
- Write the code in and still can't get the address. Is it related to my network? I've been using metamask reponste3 to test the network, but the local network 8545 can't be connected
- Setinfo is called successfully, but an error will be reported after success. What is the reason?
- Use the Ganache local node to prompt that the introduction of Web3 is successful. But you can't use Web3's method
- Solid returns cannot return results
- Why did I get an error initializing the genesis block.
- Why do I start the RPC service of geth node and send a request to the node without response from the terminal?
- How to solve the problem of displaying errors in the constructor of solidity because of the version of vs Code?
- The new version of truss initializes test with init. There are no files in test. Is it a version problem?
- What do you think of the time it takes to call a contract
- Problems encountered initializing folders with truss init. Prompt: how to solve the problem of unable to connect to the network
- What is the solution
- When compiling the contract, the terminal input truss compile is stuck and cannot be compiled successfully
- What is the problem that the version of the solid compiler cannot be matched after the truss compile prompt
- Interact with the contract in the truss console, and call Web3 when passing parameters The toWei hint is not a function
- Building usdt wallet node based on erc20
- Why is there a promise syntax error when it is written like this? It shows that the listener function is undecided. Obviously, a contract instance has been successfully introduced.
- How do contracts simulate the passage of time?