web3.eth.compile.solidity()替代方案

欧易(OKX)交易所

新用户永久最高20%手续费减免!

官网注册   APP下载

我们使用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放这里,想知道如何实作也欢迎点进去看看喔。

web3.eth.compile.solidity()替代方案

被低估的矿工角色

最近常常浏览区块链,ICO 相关的文章,但对矿工(Miner,或是Keeper)功能有着墨的文章很少。一般人对矿工的印象通常是从bitcoin 矿工而来,藉由解决Hash 问题来领取报酬,而不太重视矿

原创文章,作者:掘金K,如若转载,请注明出处:https://www.20on.com/112740.html

(0)
掘金K掘金K
上一篇 21 5 月, 2022 4:40 上午
下一篇 21 5 月, 2022 4:49 上午

欧易(OKX)交易所

新用户永久最高20%手续费减免!

官网注册   APP下载

相关推荐