赞
踩
说句实话,在做区块链、智能合约、搭私链、pythonWeb3接口调用这些东西的时候,心里崩溃了不止四五十回,如果可以选别的方向,博主劝你赶紧换,人生已经很不容易了,别给自己找罪受。。。。。
创世块是什么请自行搜索,网络上很多示例的创世块博主都试过,在实际使用时会有各种各样的问题,如挖矿难度过大,格式不标准等等,博主贴上自己用的创世块代码,可以避免不必要的问题。
{ "config": { "chainId": 3838438, "homesteadBlock": 0, "eip150Block": 0, "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "istanbulBlock": 0, "ethash": { } }, "nonce": "0x0", "timestamp": "0x5ddf8f3a", "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000", "gasLimit": "0x47b888", "difficulty": "0x2fffff", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { }, "number": "0x0", "gasUsed": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" }
安装好geth客户端,然后在geth.exe同级目录下按shift+鼠标右键出现如图所示菜单,选择在此处打开Powershell窗口
在控制台输入命令操控Geth。
至于各种命令要熟练使用,学习时可以参考这篇博文——命令行博文链接
本人在搭私链和部署智能合约的时候用到的命令如下,先列出来一下
eth.sendTransaction({
from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(1, "ether")})
personal.unlockAccount(eth.accounts[0])
geth --datadir data0 init genesis.json
geth --datadir data0 --networkid 3838438999 --nodiscover --port 30306 console
eth.accounts
personal.newAccount()
personal.unlockAccount(eth.accounts[0])
admin.startRPC("127.0.0.1", 8585)
eth.blockNumber
admin.nodeInfo
如果要加进别的设备,那就要用其他命令来连接了,在部署智能合约时,你可以先部署在最先搭私链的这个节点上,部署成功后再想办法把别的设备连进来。搭私链步骤看这篇博客——搭私链
我的ABI文件如下
[ { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "IPFSAddrMatch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_IPFS", "type": "string" }, { "internalType": "uint256", "name": "_number", "type": "uint256" } ], "name": "OverSubmit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_layer", "type": "uint256" }, { "internalType": "bool", "name": "_isVerifier", "type": "bool" }, { "internalType": "uint256", "name": "_number", "type": "uint256" } ], "name": "Regist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_number", "type": "uint256" } ], "name": "ViewFed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ViewLayerIPFS", "outputs": [ { "internalType": "string[]", "name": "", "type": "string[]" }, { "internalType": "string[]", "name": "", "type": "string[]" }, { "internalType": "string[]", "name": "", "type": "string[]" }, { "internalType": "string[3]", "name": "", "type": "string[3]" }, { "internalType": "uint256[3]", "name": "", "type": "uint256[3]" }, { "internalType": "uint256[3]", "name": "", "type": "uint256[3]" }, { "internalType": "uint256[3]", "name": "", "type": "uint256[3]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_number", "type": "uint256" } ], "name": "ViewNode", "outputs": [ { "components": [ { "internalType": "uint256", "name": "BianHao", "type": "uint256" }, { "internalType": "uint256", "name": "layer", "type": "uint256" }, { "internalType": "uint256", "name": "lazy", "type": "uint256" }, { "internalType": "bool", "name": "valid", "type": "bool" }, { "internalType": "bool", "name": "isVerifier", "type": "bool" } ], "internalType": "struct newBHZ.Node", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_IPFS", "type": "string" } ], "name": "addLazy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。