智能合约部署
1、编译环境准备
1) 下载nodejs:
# curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
安装nodejs
yum install -y git nodejs
nodejs仓库更改到淘宝node仓库
npm config set registry https://registry.npm.taobao.org
更新nodejs1
# npm install -g n
出现报错如下
解决办法:
npm install -g --unsafe-perm=true --allow-root truffle
2、代码拉取
svn或git上拉取代码将代码迁移到/data/workspace/YYXCoin/目录下
# cd /data/workspace/
# cd YYXACoin/
3、解压智能合约代码
1) 解压代码
# tar -xf /home/centos/YYXcoin.tar.gz
# ls
flowrevenue nodepledge teamlock
注:四个智能合约的配置文件一样,最终是gas和gasprice自定义
4、分别编译三个智能合约源码
注: 整个部署过程选择在其中一台代理节点主机上操作,在对应的代理节点上解锁初始化专管账号
Compiling your contracts...
===========================
> Compiling ./contracts/Migrations.sol
> Compiling ./contracts/TrafficProfitLockUp.sol
> Compiling openzeppelin-solidity/contracts/math/SafeMath.sol
> Artifacts written to /data/workspace/YYXACoin/flowrevenue/build/contracts
> Compiled successfully using:
- solc: 0.5.1+commit.c8a2cb62.Emscripten.clang
Compiling your contracts...
===========================
> Compiling ./contracts/Migrations.sol
> Compiling ./contracts/NodePledgeLockUp.sol
> Compiling openzeppelin-solidity/contracts/math/SafeMath.sol
> Artifacts written to /data/workspace/YYXACoin/nodepledge/build/contracts
> Compiled successfully using:
- solc: 0.5.1+commit.c8a2cb62.Emscripten.clang
Compiling your contracts...
===========================
> Compiling ./contracts/Migrations.sol
> Compiling ./contracts/TeamFundLockUp.sol
> Compiling openzeppelin-solidity/contracts/math/SafeMath.sol
> Artifacts written to /data/workspace/YYXACoin/teamlock/build/contracts
> Compiled successfully using:
- solc: 0.5.1+commit.c8a2cb62.Emscripten.clang
5、部署前条件准备
- 从基金转管账号0x9e0048eb2d9a03d32bf6d6b411bf75b9c1bfb0dc转100个NFC到初始化专管账号0x87b8d97b95e155a9462aa14f82d857709b53c36a
形如:
eth.sendTransaction({from:'0x9e0048eb2d9a03d32bf6d6b411bf75b9c1bfb0dc',to:'0x87b8d97b95e155a9462aa14f82d857709b53c36a',value:web3.toWei(100,"ether")})
- 解锁初始化专管账户
进入链节点和智能合约部署机器为同一台节点的控制台(一般为代理节点),一般解锁1000秒足够
./bin/nfc attach test/nfc.ipc
> personal.unlockAccount("0x87b8d97b95e155a9462aa14f82d857709b53c36a","nfc123",1000)
true
6、智能合约部署
管理权移交命令:
eth.sendTransaction({from:"初始专管账户",to:"智能合约地址",gas:160000,value:0x0,data:"0xf2fde38b000000000000000000000000新专管账户"}), 新专管账户填写时不要加0x,初始专管账户也就是配置在配置文件的from地址
将初始化专管帐户3.15亿转给团队资金锁仓智能合约
eth.sendTransaction({from: "0x87b8d97b95e155a9462aa14f82d857709b53c36a", to: "0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940", gas: 160000, value: 315000000000000000000000000, data:"0x1f5d7810"})
将智能合约控制权移交给团队资金专管帐户
eth.sendTransaction({from:"0x87b8d97b95e155a9462aa14f82d857709b53c36a",to:"0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940",gas:160000,value:0x0,data:"0xf2fde38b000000000000000000000000cff88cf74a4953e31ca8c22f70ca012ddf969767"})
专管账号查询
eth.call({to:"0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940",data:"0x8da5cb5b"})
专管账号管理权限转移给节点质押智能合约管理地址
eth.sendTransaction({from:"0x87b8d97b95e155a9462aa14f82d857709b53c36a",to:"0x5E198c48fF7faA5B44a463692495284B3f7DEDD6",gas:160000,value:0x0,data:"0xf2fde38b000000000000000000000000524e3758e1eec73c9d970c1b528ddbb68852ceae"})
查询管理权账号地址
eth.call({to:"0x5E198c48fF7faA5B44a463692495284B3f7DEDD6",data:"0x8da5cb5b"})
将矿工账号的质押币转到节点质押智能合约地址账号中
节点1
personal.unlockAccount("0xf5f78a346805d44f2ccd5d9b823360fbc40f271c", "123123")
eth.sendTransaction({from: "0xf5f78a346805d44f2ccd5d9b823360fbc40f271c", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})
节点2
personal.unlockAccount("0x8e798a1afab6040fb98fc1697d2b33b8e5e94488", "1223123")
eth.sendTransaction({from: "0x8e798a1afab6040fb98fc1697d2b33b8e5e94488", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})
节点3
personal.unlockAccount("0x5a97940718fb63a3f58473b0bce7ed97944c95da", "nfc123")
eth.sendTransaction({from: "0x5a97940718fb63a3f58473b0bce7ed97944c95da", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})
节点4
personal.unlockAccount("0xd7d71bde444c1b9eb54c17c66e1355f705c50bc4", "123123")
eth.sendTransaction({from: "0xd7d71bde444c1b9eb54c17c66e1355f705c50bc4", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})
节点5
personal.unlockAccount("0xf4503bfe539c2fb56a3e73c51a06d0f0513f8a00", "123123")
eth.sendTransaction({from: "0xf4503bfe539c2fb56a3e73c51a06d0f0513f8a00", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})
专管账号管理权限转移到流量挖矿智能合约管理地址
eth.sendTransaction({from:"0x87b8d97b95e155a9462aa14f82d857709b53c36a",to:"0xf8b161bc8425177D7Af4DA43E28a1AEDDcd6EcA2",gas:160000,value:0x0,data:"0xf2fde38b00000000000000000000000074fc1f10d99937a6a4dcb343738d33cea0915f0b"})
专管账号管理权限地址查询
eth.call({to:"0xf8b161bc8425177D7Af4DA43E28a1AEDDcd6EcA2",data:"0x8da5cb5b"})
剩余初始化专管账户返回基金会专管地址
eth.sendTransaction({from:’0x87b8d97b95e155a9462aa14f82d857709b53c36a’,to:’0x9e0048eb2d9a03d32bf6d6b411bf75b9c1bfb0dc’,value:web3.toWei(84,”ether”)})
结:**综合上述三个智能合约地址分别为**
teamlock(团队锁仓):0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940
nodepledge(节点质押):0x5E198c48fF7faA5B44a463692495284B3f7DEDD6
flowrevenue(流量挖矿):0xf8b161bc8425177D7Af4DA43E28a1AEDDcd6EcA2
SDVN代币只能合约地址:0x1ED73319774e2ccB7147b35f2e8516B76e25cF95
还没有评论,来说两句吧...