智能合约部署

怼烎@ 2023-01-05 14:26 392阅读 0赞

1、编译环境准备

1) 下载nodejs:

  1. # curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
  1. 安装nodejs

    yum install -y git nodejs

  2. nodejs仓库更改到淘宝node仓库

    npm config set registry https://registry.npm.taobao.org

  3. 更新nodejs1

  1. # npm install -g n
  1. 更新nodejs到稳定版本或12.18.3,目前是更新到12.18.3

    n 12.18.3 或

    n stable

  2. 安装智能合约编译环境

    npm install -g truffle

出现报错如下

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JhaWR1XzM4NDMyNzMy_size_16_color_FFFFFF_t_70

解决办法:

  1. npm install -g --unsafe-perm=true --allow-root truffle

2、代码拉取

svn或git上拉取代码将代码迁移到/data/workspace/YYXCoin/目录下

  1. # cd /data/workspace/
  2. # cd YYXACoin/

3、解压智能合约代码

1) 解压代码

  1. # tar -xf /home/centos/YYXcoin.tar.gz
  2. # ls
  3. flowrevenue nodepledge teamlock
  1. 修改配置文件

    vim teamlock/truffle-config.js

20210113100023734.png

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

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

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

  1. 编译流量挖矿智能合约代码

    cd flowrevenue/

    truffle compile

  1. Compiling your contracts...
  2. ===========================
  3. > Compiling ./contracts/Migrations.sol
  4. > Compiling ./contracts/TrafficProfitLockUp.sol
  5. > Compiling openzeppelin-solidity/contracts/math/SafeMath.sol
  6. > Artifacts written to /data/workspace/YYXACoin/flowrevenue/build/contracts
  7. > Compiled successfully using:
  8. - solc: 0.5.1+commit.c8a2cb62.Emscripten.clang
  1. 编译节点质押智能合约代码

    cd ../nodepledge/

    truffle compile

  1. Compiling your contracts...
  2. ===========================
  3. > Compiling ./contracts/Migrations.sol
  4. > Compiling ./contracts/NodePledgeLockUp.sol
  5. > Compiling openzeppelin-solidity/contracts/math/SafeMath.sol
  6. > Artifacts written to /data/workspace/YYXACoin/nodepledge/build/contracts
  7. > Compiled successfully using:
  8. - solc: 0.5.1+commit.c8a2cb62.Emscripten.clang
  1. 编译团队锁仓智能合约代码

    cd ../teamlock/

    truffle compile

  1. Compiling your contracts...
  2. ===========================
  3. > Compiling ./contracts/Migrations.sol
  4. > Compiling ./contracts/TeamFundLockUp.sol
  5. > Compiling openzeppelin-solidity/contracts/math/SafeMath.sol
  6. > Artifacts written to /data/workspace/YYXACoin/teamlock/build/contracts
  7. > Compiled successfully using:
  8. - solc: 0.5.1+commit.c8a2cb62.Emscripten.clang
  1. 编译代币智能合约代码

    cd /data/workspace/SDVN/

    truffle compile

5、部署前条件准备

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

形如:

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

进入链节点和智能合约部署机器为同一台节点的控制台(一般为代理节点),一般解锁1000秒足够

  1. ./bin/nfc attach test/nfc.ipc
  2. > personal.unlockAccount("0x87b8d97b95e155a9462aa14f82d857709b53c36a","nfc123",1000)
  3. true

6、智能合约部署

管理权移交命令:

  1. eth.sendTransaction({from:"初始专管账户",to:"智能合约地址",gas:160000,value:0x0,data:"0xf2fde38b000000000000000000000000新专管账户"}), 新专管账户填写时不要加0x,初始专管账户也就是配置在配置文件的from地址
  1. 团队锁仓智能合约部署

    cd /data/workspace/YYXACoin/teamlock/

    truffle migrate

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JhaWR1XzM4NDMyNzMy_size_16_color_FFFFFF_t_70 1

将初始化专管帐户3.15亿转给团队资金锁仓智能合约

  1. eth.sendTransaction({from: "0x87b8d97b95e155a9462aa14f82d857709b53c36a", to: "0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940", gas: 160000, value: 315000000000000000000000000, data:"0x1f5d7810"})

将智能合约控制权移交给团队资金专管帐户

  1. eth.sendTransaction({from:"0x87b8d97b95e155a9462aa14f82d857709b53c36a",to:"0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940",gas:160000,value:0x0,data:"0xf2fde38b000000000000000000000000cff88cf74a4953e31ca8c22f70ca012ddf969767"})

专管账号查询

  1. eth.call({to:"0xE0983f2AcaA23A8a7F106A6B80FcB76c62A28940",data:"0x8da5cb5b"})
  1. 节点质押智能合约部署

    cd /data/workspace/YYXACoin/nodepledge/

    truffle migrate

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JhaWR1XzM4NDMyNzMy_size_16_color_FFFFFF_t_70 2

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

  1. eth.sendTransaction({from:"0x87b8d97b95e155a9462aa14f82d857709b53c36a",to:"0x5E198c48fF7faA5B44a463692495284B3f7DEDD6",gas:160000,value:0x0,data:"0xf2fde38b000000000000000000000000524e3758e1eec73c9d970c1b528ddbb68852ceae"})

查询管理权账号地址

  1. eth.call({to:"0x5E198c48fF7faA5B44a463692495284B3f7DEDD6",data:"0x8da5cb5b"})

将矿工账号的质押币转到节点质押智能合约地址账号中

节点1

  1. personal.unlockAccount("0xf5f78a346805d44f2ccd5d9b823360fbc40f271c", "123123")
  2. eth.sendTransaction({from: "0xf5f78a346805d44f2ccd5d9b823360fbc40f271c", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})

节点2

  1. personal.unlockAccount("0x8e798a1afab6040fb98fc1697d2b33b8e5e94488", "1223123")
  2. eth.sendTransaction({from: "0x8e798a1afab6040fb98fc1697d2b33b8e5e94488", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})

节点3

  1. personal.unlockAccount("0x5a97940718fb63a3f58473b0bce7ed97944c95da", "nfc123")
  2. eth.sendTransaction({from: "0x5a97940718fb63a3f58473b0bce7ed97944c95da", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})

节点4

  1. personal.unlockAccount("0xd7d71bde444c1b9eb54c17c66e1355f705c50bc4", "123123")
  2. eth.sendTransaction({from: "0xd7d71bde444c1b9eb54c17c66e1355f705c50bc4", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})

节点5

  1. personal.unlockAccount("0xf4503bfe539c2fb56a3e73c51a06d0f0513f8a00", "123123")
  2. eth.sendTransaction({from: "0xf4503bfe539c2fb56a3e73c51a06d0f0513f8a00", to: "0x5E198c48fF7faA5B44a463692495284B3f7DEDD6", gas: 160000, value: 1000000000000000000000000, data:"0x046b3703"})
  1. 流量挖矿智能合约部署

    cd /data/workspace/YYXACoin/flowrevenue/

    truffle migrate

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JhaWR1XzM4NDMyNzMy_size_16_color_FFFFFF_t_70 3

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

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

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

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

    cd /data/workspace/YYXACoin/SDVN/

    truffle migrate

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JhaWR1XzM4NDMyNzMy_size_16_color_FFFFFF_t_70 4

  1. 剩余初始化专管账户返回基金会专管地址

    eth.sendTransaction({from:’0x87b8d97b95e155a9462aa14f82d857709b53c36a’,to:’0x9e0048eb2d9a03d32bf6d6b411bf75b9c1bfb0dc’,value:web3.toWei(84,”ether”)})

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

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

发表评论

表情:
评论列表 (有 0 条评论,392人围观)

还没有评论,来说两句吧...

相关阅读

    相关 智能合约

    智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。