以太坊私链部署智能合约

发布时间:2023-06-14 11:00

centos安装npm和solc

1、安装gcc

yum install gcc gcc-c++

2、下载node国内镜像

wget https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz

3、解压node文件并进行重命名

tar -xvf  node-v10.14.1-linux-x64.tar.gz
mv node-v10.14.1-linux-x64 node

4、添加环境变量

echo \"export NODE_HOME=/root/nodejs/node\" > /etc/profile
echo \"export PATH=$NODE_HOME/bin:$PATH\" > /etc/profile 

5、刷新系统配置

source /etc/profile

6、查看版本

node -v
npm -v

7、安装solc

npm install -g solc

\"以太坊私链部署智能合约_第1张图片\"

部署智能合约

1、使用remix编译.sol文件,获取abi参数和bytecode参数

pragma solidity ^0.4.0;

contract testETH{
    string abc = \"hello ethereum\";
    function getabc() public view returns(string){
        return abc;
    }
}

\"以太坊私链部署智能合约_第2张图片\"

2、在以太坊控制台输入abi参数,将abi参数放在web3.eth.contract()中

testabi=web3.eth.contract([{\"constant\": true,\"inputs\": [],\"name\": \"getabc\",\"outputs\": [{\"name\": \"\",\"type\": \"string\"}],\"payable\": false,\"stateMutability\": \"view\",\"type\": \"function\"}])

\"以太坊私链部署智能合约_第3张图片\"

3、在以太坊控制台输入bin参数

testbin=\"0x60806040526040805190810160405280600e81526020017f68656c6c6f20657468657265756d0000000000000000000000000000000000008152506000908051906020019061004f929190610062565b5034801561005c57600080fd5b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6101a4806101166000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063f3f26af714610046575b600080fd5b34801561005257600080fd5b5061005b6100d6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561009b578082015181840152602081019050610080565b50505050905090810190601f1680156100c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561016e5780601f106101435761010080835404028352916020019161016e565b820191906000526020600020905b81548152906001019060200180831161015157829003601f168201915b50505050509050905600a165627a7a72305820d4bf7d2d9be16172398dd1bdd3d44784e6247aedaf938c888bcde96bd6e384150029\"

\"以太坊私链部署智能合约_第4张图片\"

4、设置计算需要的gas费用

testgas=\"300000\"

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

5、解锁账户并部署合约

personal.unlockAccount(eth.accounts[0],\"123456\")

var testeth = testabi.new({from:web3.eth.accounts[0],data:testbin,gas:testgas})
// 同时可以看到交易池中有一笔记录,开启挖矿即可讲合约部署成功

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

6、挖矿实现合约成功部署
miner.start(1);admin.sleepBlocks(1);miner.stop();

合约交互

1、获取合约对象

myheyue = eth.contract(testabi)
// 图中是用的abi,其中abi内容与testabi内容一样

\"以太坊私链部署智能合约_第5张图片\"

2、实例化合约

myname = myheyue.at(testeth.address)

\"以太坊私链部署智能合约_第6张图片\"

3、调用合约函数

myname.getabc.call()

// 也可使用
testeth.getabc()

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

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号