web3.eth.compile.solidity()替代方案
下面是本文从不同角度分析下web3.eth.compile.solidity()替代方案的内容,仅供参考,大家一起来看看吧。
我们使用soldidity撰写smart contract并存成.sol档。在布署smart contract之前,我们必须要先将solidity code编译成EVM(Ethereum Virtual Machine)可以看懂的程式码。编译后会出现:
- Bytecode/EVM code
- ABI(Application Binary Interface)
Btyecode主要是布署在blockchain上,让EVM所执行的程式码。ABI主要定义如何跟smart contract互动。ABI内容包含smart contract所定义的行为,也就是contract中所定义的funcation。在布署smart contract时也需要ABI。
不幸的消息
Web3.js原本有提供可以让我们直接compile solidity code的功能(web3.eth.compile.solidity())。但非常不幸Geth从1.5.9版本之后就不在支援compile solidity code的功能了。所以当你连接到1.5.9以上版本的Geth,呼叫web3.eth.compile.solidity()时会发生错误。Metamask原本就没有支援compile solidity code功能。而EthereumJS TestRPC v6.0.3经过测试也没有支援compile的功能。
矿池出块标准为何是全网千分之一算力
蓝点:1/1000算力每日至少一块的机率是0.996。但绿点:1/10000则降到0.42 在8/8GPU挖矿中显卡挖矿群中,有人提到矿池需要达全网1/1000算力才能符合出块标准。对于这个数字有些好奇,但只
代替方案
那我们要如何来compile solidity code呢?这里提供两种替代方案来解决这个问题。第一种是直接安装Solidity Compiler(Solc)在本地端电脑,先在本地端利用solc先将sol档编译后再布署。安装Solc的过程非常简单,如果你的环境跟我一样是ubuntu的话,利用apt-get安装即可。
sudo add-apt-repository ppa:ethereum/ethereum sudo apt-get update sudo apt-get install solc
安装好之后就可以直接在command line上利用solc指令编译。
solc [options] [input file …] solc — bin sample.sol > sample.bin solc — abi sample.sol > sample.abi solc — combined-json abi,bin sample.sol > sample.json
Browser Solc
另一种方法就是使用线上的solc(browser-solc)来进行编译。browser-solc其实就是浏览器版的solc.js。这边有用browser-solc写一个简易的Online Solc网站,可以把你的solidity code放到左边的栏位,选择你要什么版本的solc,按下Complie Code按钮。在右方就会出现编译完过后的Bytecode和ABI。我也把source code放这里,想知道如何实作也欢迎点进去看看喔。
被低估的矿工角色
最近常常浏览区块链,ICO 相关的文章,但对矿工(Miner,或是Keeper)功能有着墨的文章很少。一般人对矿工的印象通常是从bitcoin 矿工而来,藉由解决Hash 问题来领取报酬,而不太重视矿
本文由某某资讯网发布,不代表某某资讯网立场,转载联系作者并注明出处:https://www.yuhuajia.cn/baike/25hp5dqv.html