【问题标题】:How can I deploy a smart contract to RSK without using Truffle?如何在不使用 Truffle 的情况下将智能合约部署到 RSK?
【发布时间】:2021-04-27 08:13:15
【问题描述】:

使用 solc 编译 Solidity 文件后,如何将输出字节码作为智能合约部署到 RSK? 我已经知道如何使用 Truffle 来执行此操作,但是有哪些替代方法可用于此任务?

【问题讨论】:

    标签: rpc truffle rsk


    【解决方案1】:

    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, 或钱包中的等效方法。

    【讨论】:

      【解决方案2】:

      是的,很高兴知道在这些情况下会发生什么。简短回答:您发送交易,到字段为空,数据字段包含已编译合约的字节码与构造函数的 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 中的代码示例(请参阅执行设置)

      我会添加直接提供字节码来部署命令的功能,过几天我会写一篇文章,有条理的描述

      【讨论】:

      • 太棒了! client.deploy 听起来是个不错的选择!
      猜你喜欢
      • 2021-10-09
      • 2018-10-12
      • 2020-11-14
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多