使用 solc
编译 Solidity 文件后,如何将输出字节码作为智能合约部署到 RSK?
我已经知道如何使用 Truffle 做到这一点,但有哪些替代方案可用于此任务?
答案 0 :(得分:4)
RSK(大部分)与以太坊兼容。 特别是对于开发工具, 它具有 JSON-RPC 兼容性和 VM 兼容性。 所以如果你是以太坊开发者, 您可以使用您熟悉的工具/库。 这里有几种方法,除了 Truffle:
如果您想手动执行此操作,
您可以使用终端执行此操作
使用 curl
发送交易
通过 JSON-RPC 像这样:
curl \
-X POST \
-H "Content-Type:application/json" \
--data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{"from":"FROM_ADDRESS","to":"0x00","gasPrice":"0x3938700","gas":"0x67C28", "data":"SIGNED_CONTRACT_DEPLOYMENT_BYTECODE"}],"id":1}' \
http://localhost:4444
eth_estimateGas
RPC 获取 gas
的值。eth_gasPrice
RPC 获取 gasPrice
的值。请注意,上述命令假设您在 localhost
上运行了 RSKj。
还要注意,就像任何其他交易一样
修改区块链的状态,
您还需要签署部署交易,
为了产生SIGNED_CONTRACT_DEPLOYMENT_BYTECODE
。
您可以为此使用 eth_sign
RPC,
或钱包中的等效方法。
答案 1 :(得分:1)
是的,很高兴知道在这些情况下会发生什么。简短回答:您发送交易,to 字段为空,数据字段包含已编译合约的字节码,并带有构造函数的 ABI 编码参数(如果有)
通常,我编写自己的实用程序(在 NodeJS 中,跨平台),以与 Ethereum/RSK 节点交互。你可以在我的个人项目https://github.com/ajlopez/rskapi
中探索client.deploy的实现代码另外,您可以检查我的命令行工具的实现(基于上述库)https://github.com/ajlopez/rskclitools#deploy-a-contract
https://github.com/ajlopez/EthFaucet/tree/master/commands 中的代码示例(请参阅执行设置)
我会添加直接提供字节码来部署命令的功能,过几天我会写一篇文章描述得更有条理