有链YOUChain公测网与以太坊智能合约实测对比

有链YOUChain公测网与以太坊智能合约实测对比_第1张图片

YOUChain在12月16日上线了名为MarcoPolo的公测网。
总说收费低收费低,今天就测一下。

公测网发布了,意味着已经具备主网上线的条件,所以我们以公测网与以太坊智能合约进行实测对比。

以太坊智能合约部署及GAS

我们用以太坊的测试网Rinkeby 实时的做一次测试,就执行一句简单的程序。如下图编译成功后开始部署。

有链YOUChain公测网与以太坊智能合约实测对比_第2张图片

可以在钱包中看到部署的扣费请求(下图),一共需要0.000168ETH(约0.14人民币)。也就是说用以太坊网络仅仅执行一条简单的语句就需要0.14人民币/次。

有链YOUChain公测网与以太坊智能合约实测对比_第3张图片

从钱包中查看本次智能合约,如下图,花费了168324*1=168324Gwei,得出了上文的0.000168ETH的GAS费.

wei是最小的以太坊单位。
有链YOUChain公测网与以太坊智能合约实测对比_第4张图片

目前的wei建议价格如下:
(数据来自https://ethgasstation.info/index.php)

有链YOUChain公测网与以太坊智能合约实测对比_第5张图片

YOUChain智能合约部署

(顺便手把手教你部署一次合约)

注:以下操作一定要用谷歌浏览器

01https://dev.iyouchain.com/zh/youwallet/browser-extension.html 安装钱包。

02
有了钱包账户就在钱包点击“存入”,可以领取测试网络的100YOU用于接下来的智能合约的部署。

有链YOUChain公测网与以太坊智能合约实测对比_第6张图片

03 打开YOUChain的IDE编译器 https://ide.iyouchain.com/
点击左上角“+”号新建一个 .sol文件,命名随意。

04 把这几行代码(够短吧)粘贴到如图的框里,然后点击右边的“开始编译”

pragma solidity ^0.4.25;

contract YOUFen{

string Myname = “easy”;

function getName() public view returns(string)

{

return Myname;
}

}


有链YOUChain公测网与以太坊智能合约实测对比_第7张图片

出现下图部分就是编译成功了
有链YOUChain公测网与以太坊智能合约实测对比_第8张图片

05 如图选择部署环境“Injected YOUChain”,如果你前面钱包安装没有问题的话,“环境”下面的“账号”浏览器会自动帮你填写的。
直接点击“确认部署”。

有链YOUChain公测网与以太坊智能合约实测对比_第9张图片

06 弹出钱包,点击“确认”

07 下方出现如下图{“blockHash”:" 就是成功了 你可以将该hash值复制到区块链浏览器中搜索查看你的智能合约。

有链YOUChain公测网与以太坊智能合约实测对比_第10张图片

恭喜你成功部署智能合约!

该代码与刚刚部署在以太坊公测网络的代码完全相同,来看看该合约部署在YOUChain公测网络花费了多少gas费。

在钱包中点击刚刚部署的合约,发现一共消耗了192736Glu,lu是YOU最小的单位,1YOU=1018lu,1Glu=109lu。所以刚刚一共消耗了0.000192736YOU(约0.00006元)相比以太坊的0.14元简直是白菜价。我使用的环境,YOUChain ide 和 remix 虚拟机版本不一样,所以数量上稍微有差距,但不会是数量级的差异。

也就是说以该程序为例的话,在以太坊上部署合约的成本是在YOUChain上部署合约成本的2000多倍。(实际可能因各种因素有些许差异。)

有链YOUChain公测网与以太坊智能合约实测对比_第11张图片

2种GAS费预估的方法

01 通过 rpc

curl -X POST \

  http://test-node.iyouchain.com \

  -H 'Content-Type: application/json' \

  -d '{

    "jsonrpc": "2.0",

    "id": 1,

    "method": "you_estimateGas",

    "params": [

        { 

            "data": "0x智能合约数据"    

        }

    ]

}

有链YOUChain公测网与以太坊智能合约实测对比_第12张图片

02 通过youchain.js

const YOUChain = require('youchain');



const solc = require('solc');

const fs = require('fs');



const youchain = new YOUChain('http://test-node.iyouchain.com');

const address = '0x59677fd68ec54e43ad4319d915f81748b5a6ff8b';



const contractWrap = (content) => {

  return {

    language: 'Solidity',

    sources: {

      'Adoption.sol': {

        content

      }

    },

    settings: {

      outputSelection: {

        '*': {

          '*': ['*']

        }

      }

    }

  };

};



fs.readFile('Adoption.sol', 'utf8', async (error, data) => {

  let output = JSON.parse(solc.compile(JSON.stringify(contractWrap(data))));

  output = output.contracts['Adoption.sol']['Adoption'];

  const contract = new youchain.you.Contract(output.abi);

  console.log('object: ', output.evm.bytecode.object);

  const encodeABI = contract

    .deploy({

      data: output.evm.bytecode.object,

      arguments: []

    })

    .encodeABI();



   youchain.you.estimateGas({

    from: address,

    data: '0x' + encodeABI

  }).then(data =>{

    console.log("estimateGas",data);

  });

});





你可能感兴趣的:(有链YOUChain公测网与以太坊智能合约实测对比)