智能合约部署上链详细操作

1. 首先选择需要将合约部署的节点

找到该节点目录下的ipc文件,执行:geth attach ipc:geth.ipc
此时会进入console界面。
在这里插入图片描述

2. 查看personal属性

personal

在这里插入图片描述

3. 查看账户与余额

eth.getBalance(eth.accounts[0])

在这里插入图片描述

eth.accounts[0]

在这里插入图片描述

4. 编写合约

此处编写一个简单的合约

contract Demo {
    function g(uint a) returns (uint b) {
        return a*a*2;
    }
}

编译合约,此处提供两种方式。(本人用的方式二)
方式一:利用谷歌的solidity插件,如果没有安装改插件请先安装改插件
在这里插入图片描述
在这里插入图片描述
方式二:Browser-solidity编译:https://ethereum.github.io/browser-solidity
在这里插入图片描述
编译后选择web3.eth.contract值和合约的二进制数据
在这里插入图片描述

5. 定义合约类

将前面获取的web3.eth.contract值输入到终端,即:

abi=[{"constant":false,"inputs":[{"name":"a","type":"uint256"}],"name":"g","outputs":[{"name":"b","type":"uint256"}],"payable":false,"type":"function","stateMutability":"nonpayable"}]

在这里插入图片描述
接下来使用eth.constract定义合约类

sample=eth.contract(abi)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 部署合约上链

首先将合约的二进制代码复制给SampleHEX,即

SampleHEX="0x6060604052341561000f57600080fd5b5b60ad8061001e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063e420264a14603d575b600080fd5b3415604757600080fd5b605b60048080359060200190919050506071565b6040518082815260200191505060405180910390f35b600060028283020290505b9190505600a165627a7a72305820b7d1a5cc793052cc2e9551a8d509f32a28c99b6872cf9003fad139d790290ec10029"

在这里插入图片描述
然后把合约部署上链

thesample=sample.new(1,{from:eth.accounts[0],data:SampleHEX,gas:3000000})

在这里插入图片描述

7. 命名合约名

首先查看交易细节来获取合约的地址,注意下面指令输入的地址是上述操作后transactionHash返回的,不是随机的。

samplerecpt=eth.getTransactionReceipt("0x6e96213509c03842e7787ea559d57d87eb1a688bff12c727afbcd6ddeabdc90f")

在这里插入图片描述
命名合约名,注意下面指令的地址是上述操作后contractAddress返回的值,不是随机的。

samplecontract=sample.at("0x62ced4ec5586945b9eaf4a5df40cbee70a8087d8")

在这里插入图片描述

8. 测试部署情况

直接运行合约里的功能函数即可判定是否部署成功。
在这里插入图片描述

9. 用网页钱包测试

前面介绍了网页版的钱包部署,此处可利用网页版的钱包测试智能合约是否成功上链。
钱包环境部署
钱包环境测试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36651243/article/details/88634524
今日推荐