zoukankan      html  css  js  c++  java
  • Solidity部署问题

    Solidity是一个有诸多限制的语言,部署智能合约以及运行都需要gas。

    部署的时候如果程序太大,所需要的gas会超过一个区块的上限,这样就没法部署合约。如果用metamask测试的话会弹出以下警告,强行执行部署交易也没用:

    Gas estimation errored with the following message (see below). The transaction execution will likely fail. Do you want to force sending? 

    这时候你需要做的:

    1. 检查代码,精简逻辑

    2. 开启编译优化器,大概能减少30% ~ 40%的部署gas消耗

    3. 如果还不行,将一些继承来的contract写成library的形式,比如oraclize api,有一千行左右,可以考虑写成library的形式 https://github.com/oraclize/ethereum-api/tree/master/lib-experimental

    示例: https://dapps.oraclize.it/browser-solidity/#version=soljson-v0.4.19+commit.c4cbbb05.js&optimize=false&gist=ad3d1f6007942b727f5909b55e6445d2

  • 相关阅读:
    [bzoj1095] [ZJOI2007]Hide 捉迷藏
    [bzoj3730] 震波
    [bzoj3672] [Noi2014]购票
    [bzoj4129] Haruna’s Breakfast
    《CSS3知识点》
    《表单总结》
    <表格>
    《HTML总结》
    <java程序大集合>
    《字符串的概念》
  • 原文地址:https://www.cnblogs.com/huahuayu/p/8664741.html
Copyright © 2011-2022 走看看