智能合约部署

1、编译环境准备

1) 下载nodejs:

# curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
  1. 安装nodejs
# yum install -y git nodejs
  1. nodejs仓库更改到淘宝node仓库 
# npm config set registry https://registry.npm.taobao.org
  1. 更新nodejs1

 

# npm install -g n
  1. 更新nodejs到稳定版本或12.18.3,目前是更新到12.18.3
# n 12.18.3 或
# n stable
  1. 安装智能合约编译环境
# npm install -g truffle

出现报错如下

解决办法:

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
  1. 修改配置文件
# vim teamlock/truffle-config.js

 

注:四个智能合约的配置文件一样,最终是gas和gasprice自定义

4、分别编译三个智能合约源码

注: 整个部署过程选择在其中一台代理节点主机上操作,在对应的代理节点上解锁初始化专管账号

  1. 编译流量挖矿智能合约代码
# cd flowrevenue/

# truffle compile



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
  1. 编译节点质押智能合约代码
# cd ../nodepledge/

# truffle compile



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
  1. 编译团队锁仓智能合约代码
# cd ../teamlock/

# truffle compile



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
  1. 编译代币智能合约代码
# cd /data/workspace/SDVN/

# truffle compile

5、部署前条件准备

  1. 从基金转管账号0x9e0048eb2d9a03d32bf6d6b411bf75b9c1bfb0dc转100个NFC到初始化专管账号0x87b8d97b95e155a9462aa14f82d857709b53c36a

形如:

eth.sendTransaction({from:'0x9e0048eb2d9a03d32bf6d6b411bf75b9c1bfb0dc',to:'0x87b8d97b95e155a9462aa14f82d857709b53c36a',value:web3.toWei(100,"ether")})
  1. 解锁初始化专管账户

进入链节点和智能合约部署机器为同一台节点的控制台(一般为代理节点),一般解锁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地址
  1. 团队锁仓智能合约部署
# cd /data/workspace/YYXACoin/teamlock/
# truffle migrate

 

将初始化专管帐户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"})
  1. 节点质押智能合约部署
# cd /data/workspace/YYXACoin/nodepledge/
# truffle migrate

 

专管账号管理权限转移给节点质押智能合约管理地址

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"})
  1. 流量挖矿智能合约部署
# cd /data/workspace/YYXACoin/flowrevenue/
# truffle migrate

 

专管账号管理权限转移到流量挖矿智能合约管理地址

eth.sendTransaction({from:"0x87b8d97b95e155a9462aa14f82d857709b53c36a",to:"0xf8b161bc8425177D7Af4DA43E28a1AEDDcd6EcA2",gas:160000,value:0x0,data:"0xf2fde38b00000000000000000000000074fc1f10d99937a6a4dcb343738d33cea0915f0b"})

专管账号管理权限地址查询

eth.call({to:"0xf8b161bc8425177D7Af4DA43E28a1AEDDcd6EcA2",data:"0x8da5cb5b"})
  1. 代币智能合约部署(本次安装代币名称为SDVN)
# cd /data/workspace/YYXACoin/SDVN/
# truffle migrate

 

  1. 剩余初始化专管账户返回基金会专管地址
eth.sendTransaction({from:'0x87b8d97b95e155a9462aa14f82d857709b53c36a',to:'0x9e0048eb2d9a03d32bf6d6b411bf75b9c1bfb0dc',value:web3.toWei(84,"ether")})

结:综合上述三个智能合约地址分别为

teamlock(团队锁仓):0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940
nodepledge(节点质押):0x5E198c48fF7faA5B44a463692495284B3f7DEDD6
flowrevenue(流量挖矿):0xf8b161bc8425177D7Af4DA43E28a1AEDDcd6EcA2
SDVN代币只能合约地址:0x1ED73319774e2ccB7147b35f2e8516B76e25cF95

猜你喜欢

转载自blog.csdn.net/baidu_38432732/article/details/112554238