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
1.001^365=1.44......life is a project
原创文章,转载请注明出处!