Skip to content

Latest commit

 

History

History
225 lines (182 loc) · 31.2 KB

2 树状区块链启动和创建节点.md

File metadata and controls

225 lines (182 loc) · 31.2 KB

具体参考树状区块链启动和创建节点

!不明晰点!复现手册中,并未给出创世块genesis.json的配置信息。 解决方法:使用传统区块链的初始化和启动中给出的创世块配置信息genesis.json替代。目前尚未发现副作用。

00 项目建立

使用mkdir指令新建一个名为TreeBlockchain的文件夹。

为什么使用 mkdir指令呢?这是因为,若像在Windows中一样,在图形界面中右键新建文件夹,那么这个文件夹的权限将会比较高,使用命令行对其中的文件进行操作时,必须加上很多sudo才行。而使用mkdir创建的文件夹就不会有这个问题。

在其中,放入上文所述的genesis.json。其内容如下:

{
  "config": {
    "chainId": 666,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {}
  },
  "nonce": "0x0",
  "timestamp": "0x5ddf8f3e",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x00002",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": { },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

同时,将周畅前辈提供的geth1二进制文件(位于仓库根目录)放入系统的/usr/bin/目录下。

此时,可以用以下两条指令,确认系统中确实有两个版本的geth:

geth version
# Geth
# Version: 1.10.26-stable
# --snip--
geth1 version
# Geth
# Version: 1.9.12-stable
# --snip--

!不明晰点!直接使用geth,得到了形如... flag provided but not defined的错误信息。

解决方法:使用geth1替代,错误信息消失。

01 初始化 & 启动

以上准备工作完成后,初始化区块链:

geth1 --identity "MyEth" --rpc --rpcaddr 127.0.0.1  --rpcport "8545" --rpccorsdomain "*" --datadir gethdata --port "30303" --nodiscover --rpcapi "eth,net,personal,web3" --networkid 91036 init genesis.json

初始化完毕后,再启动区块链:

geth1 --identity "MyEth" --rpcaddr 127.0.0.1 --rpc --rpcport "8545" --rpccorsdomain "*" --datadir gethdata --port "30303" --nodiscover --rpcapi "eth,net,personal,web3" --networkid 91036 --allow-insecure-unlock --dev.period 1 console

原复现手册中有提及“如果同时开两个区块链节点的话...”。在这个实验中,我们仅使用一个节点即可完成实验。如果想启动多个节点,请见下一个实验的报告文档。

02 建立账户

进入JavaScript控制台。在其中创建账户:

personal.newAccount("123456")

获得返回的账户名称,为0x32d655db60309c87b95387e3b843253d43ba7731。根据复现手册指示,将genesis.json中的alloc字段修改,修改后的genesis.json如下:

{
  "config": {
    "chainId": 666,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "ethash": {}
  },
  "alloc": {
    "0x32d655db60309c87b95387e3b843253d43ba7731": {
      "balance":"50000000000000000000000000000000000000000",
      "position":"test0123456789",
      "txtime":1
    }
  },
  "nonce": "0x0",
  "timestamp": "0x5ddf8f3e",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x47b760",
  "difficulty": "0x00002",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

随后,在终端中输入exit退出JavaScript控制台,再将目录TreeBlockchain/gethdata/geth删除。

03 重启区块链 & 确认账户信息

使用如下指令,重新初始化并启动区块链:

geth1 --identity "MyEth" --rpc --rpcaddr 127.0.0.1  --rpcport "8545" --rpccorsdomain "*" --datadir gethdata --port "30303" --nodiscover --rpcapi "eth,net,personal,web3" --networkid 91036 init genesis.json

geth1 --identity "MyEth" --rpcaddr 127.0.0.1 --rpc --rpcport "8545" --rpccorsdomain "*" --datadir gethdata --port "30303" --nodiscover --rpcapi "eth,net,personal,web3" --networkid 91036 --allow-insecure-unlock --dev.period 1 console

进入JavaScript控制台。进入后,输入如下指令查看余额:

eth.getBalance(eth.accounts[0])
// 5e+40

输入以下指令解锁账户:

personal.unlockAccount(eth.accounts[0],"123456",15000)
// true

04 部署合约

再输入如下代码,点按一次回车:

//部署合约contract在移动区块链上,将下述代码直接粘贴到控制台
abi = JSON.parse('[{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"uuid\",\"type\":\"string\"}],\"name\":\"revalue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"string\",\"name\":\"uuid\",\"type\":\"string\"}],\"name\":\"getQuality\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"string\",\"name\":\"uuid\",\"type\":\"string\"}],\"name\":\"getSinglePos\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"uuid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_latOri\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lonOri\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_latFix\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lonFix\",\"type\":\"uint256\"}],\"name\":\"setSinglePos\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]')
bytecode = "0x608060405234801561001057600080fd5b506118cb806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806332c267e2146100515780636e73a9b51461012057806376556a411461020d578063ce8f2494146102f8575b600080fd5b61010a6004803603602081101561006757600080fd5b810190808035906020019064010000000081111561008457600080fd5b82018360208201111561009657600080fd5b803590602001918460018302840111640100000000831117156100b857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103b3565b6040518082815260200191505060405180910390f35b61020b600480360360c081101561013657600080fd5b810190808035906020019064010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184600183028401116401000000008311171561018757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506104b1565b005b6102c66004803603602081101561022357600080fd5b810190808035906020019064010000000081111561024057600080fd5b82018360208201111561025257600080fd5b8035906020019184600183028401116401000000008311171561027457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a8c565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6103b16004803603602081101561030e57600080fd5b810190808035906020019064010000000081111561032b57600080fd5b82018360208201111561033d57600080fd5b8035906020019184600183028401116401000000008311171561035f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610d8e565b005b6000600a826040518082805190602001908083835b602083106103eb57805182526020820191506020810190506020830392506103c8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060020160009054906101000a900460ff1661043c57600090506104ac565b600a826040518082805190602001908083835b60208310610472578051825260208201915060208101905060208303925061044f565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206009015490505b919050565b600a866040518082805190602001908083835b602083106104e757805182526020820191506020810190506020830392506104c4565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060020160009054906101000a900460ff1661070b576001600a876040518082805190602001908083835b602083106105675780518252602082019150602081019050602083039250610544565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060020160006101000a81548160ff0219169083151502179055506000600a876040518082805190602001908083835b602083106105ec57805182526020820191506020810190506020830392506105c9565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101819055506001600a876040518082805190602001908083835b6020831061065e578051825260208201915060208101905060208303925061063b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600301819055506000600a876040518082805190602001908083835b602083106106d057805182526020820191506020810190506020830392506106ad565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600901819055505b60006001600a886040518082805190602001908083835b602083106107455780518252602082019150602081019050602083039250610722565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206001015401905080600a886040518082805190602001908083835b602083106107b65780518252602082019150602081019050602083039250610793565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206001018190555085600a886040518082805190602001908083835b602083106108275780518252602082019150602081019050602083039250610804565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060080160008381526020019081526020016000208190555084600a886040518082805190602001908083835b602083106108a95780518252602082019150602081019050602083039250610886565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060040160008381526020019081526020016000208190555083600a886040518082805190602001908083835b6020831061092b5780518252602082019150602081019050602083039250610908565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060050160008381526020019081526020016000208190555082600a886040518082805190602001908083835b602083106109ad578051825260208201915060208101905060208303925061098a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060060160008381526020019081526020016000208190555081600a886040518082805190602001908083835b60208310610a2f5780518252602082019150602081019050602083039250610a0c565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600701600083815260200190815260200160002081905550610a8387610d8e565b50505050505050565b600080600080600080600a876040518082805190602001908083835b60208310610acb5780518252602082019150602081019050602083039250610aa8565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101549050600a876040518082805190602001908083835b60208310610b3a5780518252602082019150602081019050602083039250610b17565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600401600082815260200190815260200160002054600a886040518082805190602001908083835b60208310610bb85780518252602082019150602081019050602083039250610b95565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600501600083815260200190815260200160002054600a896040518082805190602001908083835b60208310610c365780518252602082019150602081019050602083039250610c13565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600601600084815260200190815260200160002054600a8a6040518082805190602001908083835b60208310610cb45780518252602082019150602081019050602083039250610c91565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600701600085815260200190815260200160002054600a8b6040518082805190602001908083835b60208310610d325780518252602082019150602081019050602083039250610d0f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600801600086815260200190815260200160002054955095509550955095505091939590929450565b6000600a826040518082805190602001908083835b60208310610dc65780518252602082019150602081019050602083039250610da3565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206009015490506000600a836040518082805190602001908083835b60208310610e375780518252602082019150602081019050602083039250610e14565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101549050600080600a856040518082805190602001908083835b60208310610ea95780518252602082019150602081019050602083039250610e86565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600601600084815260200190815260200160002054600a866040518082805190602001908083835b60208310610f275780518252602082019150602081019050602083039250610f04565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206004016000858152602001908152602001600020541061107857600a856040518082805190602001908083835b60208310610faa5780518252602082019150602081019050602083039250610f87565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600601600084815260200190815260200160002054600a866040518082805190602001908083835b602083106110285780518252602082019150602081019050602083039250611005565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600401600085815260200190815260200160002054039050611178565b600a856040518082805190602001908083835b602083106110ae578051825260208201915060208101905060208303925061108b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600401600084815260200190815260200160002054600a866040518082805190602001908083835b6020831061112c5780518252602082019150602081019050602083039250611109565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206006016000858152602001908152602001600020540390505b600a856040518082805190602001908083835b602083106111ae578051825260208201915060208101905060208303925061118b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600701600084815260200190815260200160002054600a866040518082805190602001908083835b6020831061122c5780518252602082019150602081019050602083039250611209565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206005016000858152602001908152602001600020541061137d57600a856040518082805190602001908083835b602083106112af578051825260208201915060208101905060208303925061128c565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600701600084815260200190815260200160002054600a866040518082805190602001908083835b6020831061132d578051825260208201915060208101905060208303925061130a565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060050160008581526020019081526020016000205403915061147d565b600a856040518082805190602001908083835b602083106113b35780518252602082019150602081019050602083039250611390565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600501600084815260200190815260200160002054600a866040518082805190602001908083835b60208310611431578051825260208201915060208101905060208303925061140e565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206007016000858152602001908152602001600020540391505b60088182028384600402020111611495576001840193505b6009600a84816114a157fe5b0614156114af576001840193505b6001831180156115be5750603c600a866040518082805190602001908083835b602083106114f257805182526020820191506020810190506020830392506114cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600801600060018603815260200190815260200160002054600a876040518082805190602001908083835b602083106115735780518252602082019150602081019050602083039250611550565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060080160008681526020019081526020016000205403115b156115ca576001840393505b6001831180156116da5750610258600a866040518082805190602001908083835b6020831061160e57805182526020820191506020810190506020830392506115eb565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600801600060018603815260200190815260200160002054600a876040518082805190602001908083835b6020831061168f578051825260208201915060208101905060208303925061166c565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060080160008681526020019081526020016000205403115b156116e6576014840393505b6001831180156117f657506104b0600a866040518082805190602001908083835b6020831061172a5780518252602082019150602081019050602083039250611707565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600801600060018603815260200190815260200160002054600a876040518082805190602001908083835b602083106117ab5780518252602082019150602081019050602083039250611788565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060080160008681526020019081526020016000205403115b15611802576064840393505b606484131561181057606493505b600084121561181e57600093505b83600a866040518082805190602001908083835b602083106118555780518252602082019150602081019050602083039250611832565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060090181905550505050505056fea265627a7a72315820a9684cf8e73cc78c8940e6f596597cd545ad180d58da47d3890d11dfabcfe09d64736f6c63430005100032"
QualContract = web3.eth.contract(abi);
web3.eth.estimateGas({data: bytecode})
Qual = QualContract.new({
    from: web3.eth.accounts[0], 
    data: bytecode, 
    gas: '1400000',
    position:"w2511111111111",
    txtime:277001
  },function (e, contract){
    console.log(e, contract);
    if(!e){
        if(!contract.address) {
            console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined...");
        } else {
            console.log("Contract mined! Address: " + contract.address);
            console.log(contract);
        }
    }
});

再输入如下指令,连续按压数次回车:

abi = JSON.parse('[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"geo_maps\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gid\",\"type\":\"uint256\"}],\"name\":\"get_onetype\",\"outputs\":[{\"internalType\":\"int32[]\",\"name\":\"feature\",\"type\":\"int32[]\"},{\"internalType\":\"bytes32\",\"name\":\"names\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"highway\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"gtype\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"path\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"get_types\",\"outputs\":[{\"internalType\":\"int32[]\",\"name\":\"feature\",\"type\":\"int32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"names\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"highways\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"gtypes\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"path\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gid\",\"type\":\"uint256\"},{\"internalType\":\"int32\",\"name\":\"minzoom\",\"type\":\"int32\"},{\"internalType\":\"int32\",\"name\":\"cost\",\"type\":\"int32\"},{\"internalType\":\"bool\",\"name\":\"oneway\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"building\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"highway\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"gtype\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"path\",\"type\":\"bytes32[]\"}],\"name\":\"add_onetype\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"gid\",\"type\":\"uint256\"}],\"name\":\"add_area_line\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]')
bytecode = "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e2a806100606000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063113620ec146100675780633fb80582146101475780638da5cb5b146102ea57806397673b7f14610334578063cbf3b01e14610447578063f90e5ca914610489575b600080fd5b6100936004803603602081101561007d57600080fd5b81019080803590602001909291905050506104c1565b604051808060200186815260200185815260200184815260200180602001838103835288818151815260200191508051906020019060200280838360005b838110156100ec5780820151818401526020810190506100d1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561012e578082015181840152602081019050610113565b5050505090500197505050505050505060405180910390f35b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506106b0565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b838110156101c65780820151818401526020810190506101ab565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b838110156102085780820151818401526020810190506101ed565b50505050905001868103845289818151815260200191508051906020019060200280838360005b8381101561024a57808201518184015260208101905061022f565b50505050905001868103835288818151815260200191508051906020019060200280838360005b8381101561028c578082015181840152602081019050610271565b50505050905001868103825287818151815260200191508051906020019060200280838360005b838110156102ce5780820151818401526020810190506102b3565b505050509050019a505050505050505050505060405180910390f35b6102f2610aeb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610445600480360361012081101561034b57600080fd5b8101908080359060200190929190803560030b9060200190929190803560030b9060200190929190803515159060200190929190803515159060200190929190803590602001909291908035906020019092919080359060200190929190803590602001906401000000008111156103c257600080fd5b8201836020820111156103d457600080fd5b803590602001918460208302840111640100000000831117156103f657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610b10565b005b6104736004803603602081101561045d57600080fd5b8101908080359060200190929190505050610d27565b6040518082815260200191505060405180910390f35b6104bf6004803603604081101561049f57600080fd5b810190808035906020019092919080359060200190929190505050610d45565b005b60606000806000606060036040519080825280602002602001820160405280156104fa5781602001602082028038833980820191505090505b509450600060016000888152602001908152602001600020905080600401546040519080825280602002602001820160405280156105475781602001602082028038833980820191505090505b5091508060000160009054906101000a900460030b8660008151811061056957fe5b602002602001019060030b908160030b815250508060000160089054906101000a900460ff16156105bc576001866001815181106105a357fe5b602002602001019060030b908160030b815250506105e0565b6000866001815181106105cb57fe5b602002602001019060030b908160030b815250505b8060000160099054906101000a900460ff161561061f5760018660028151811061060657fe5b602002602001019060030b908160030b81525050610643565b60008660028151811061062e57fe5b602002602001019060030b908160030b815250505b80600201549450806001015493508060030154925060008090505b81600401548110156106a5578160050160008281526020019081526020016000205483828151811061068c57fe5b602002602001018181525050808060010191505061065e565b505091939590929450565b60608060608060606000600260008881526020019081526020016000206000015490506000809050600080831115610adf57826005026040519080825280602002602001820160405280156107145781602001602082028038833980820191505090505b509750826040519080825280602002602001820160405280156107465781602001602082028038833980820191505090505b509650826040519080825280602002602001820160405280156107785781602001602082028038833980820191505090505b509550826040519080825280602002602001820160405280156107aa5781602001602082028038833980820191505090505b50945060008091505b838210156109cf57600260008b8152602001908152602001600020600101600083815260200190815260200160002054905060006001600083815260200190815260200160002090506000600584029050828b828151811061081157fe5b602002602001019060030b908160030b815250508160000160009054906101000a900460030b8b600183018151811061084657fe5b602002602001019060030b908160030b815250508160000160049054906101000a900460030b8b600283018151811061087b57fe5b602002602001019060030b908160030b815250508160000160089054906101000a900460ff16156108d05760018b60038301815181106108b757fe5b602002602001019060030b908160030b815250506108f6565b60008b60038301815181106108e157fe5b602002602001019060030b908160030b815250505b8160000160099054906101000a900460ff16156109375760018b600483018151811061091e57fe5b602002602001019060030b908160030b8152505061095d565b60008b600483018151811061094857fe5b602002602001019060030b908160030b815250505b81600401546001860101945081600201548a858151811061097a57fe5b602002602001018181525050816001015489858151811061099757fe5b60200260200101818152505081600301548885815181106109b457fe5b602002602001018181525050505081806001019250506107b3565b826040519080825280602002602001820160405280156109fe5781602001602082028038833980820191505090505b5094506000809050600092505b84831015610adc57600260008c815260200190815260200160002060010160008481526020019081526020016000205491506000600160008481526020019081526020016000209050806004015460001b878380600101945081518110610a6e57fe5b60200260200101818152505060008090505b8160040154811015610acd5781600501600082815260200190815260200160002054888480600101955081518110610ab457fe5b6020026020010181815250508080600101915050610a80565b50508280600101935050610a0b565b50505b50505091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610d1c5787600160008b815260200190815260200160002060000160006101000a81548163ffffffff021916908360030b63ffffffff16021790555086600160008b815260200190815260200160002060000160046101000a81548163ffffffff021916908360030b63ffffffff16021790555085600160008b815260200190815260200160002060000160086101000a81548160ff02191690831515021790555084600160008b815260200190815260200160002060000160096101000a81548160ff02191690831515021790555083600160008b81526020019081526020016000206001018190555082600160008b81526020019081526020016000206002018190555081600160008b8152602001908152602001600020600301819055506000600160008b815260200190815260200160002060040154905060008090505b8251811015610cfe57828181518110610cb857fe5b6020026020010151600160008d81526020019081526020016000206005016000848060010195508152602001908152602001600020819055508080600101915050610ca3565b5080600160008c815260200190815260200160002060040181905550505b505050505050505050565b60026020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610df15760006002600084815260200190815260200160002060000160008154809291906001019190505590508160026000858152602001908152602001600020600101600083815260200190815260200160002081905550505b505056fea265627a7a7231582092454f0a2189d48c9559559a50326b36c0d27cad3f0bcd72ad99a4150833625964736f6c63430005100032";
StoreMapContract = web3.eth.contract(abi);
web3.eth.estimateGas({data: bytecode})
StoreMap = StoreMapContract.new({
    from: web3.eth.accounts[0], 
    data: bytecode, 
    gas: '1400000',
    position:"w3511111111111",
    txtime:278000
  },function (e, contract){
    console.log(e, contract);
    if(!e){
        if(!contract.address) {
            console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined...");
        } else {
            console.log("Contract mined! Address: " + contract.address);
            console.log(contract);
        }
    }
});

这样就将合约上传到了区块链上。然而,必须开始挖矿,才能真正完成部署操作。

05 开始挖矿

最后执行:

miner.start()

控制台提示开始生成DAG。待percentage字段达到99(不知为何到不了100,到99似乎就已经完成了),注意到两个不同于其他的输出:

null [object Object]
Contract mined! Address: 0x43fce95e0b0f62b1910840cef9778dcc0b71c5d9
[object Object]
null [object Object]
Contract mined! Address: 0x33dd213f562aaff09c5272b76433febf79a1da58
[object Object]

这应该就是复现手册中所说的合约地址。笔者将其保存在本文档中,供日后使用。