如何在不使用 Truffle 的情况下将智能合约部署到 RSK?
How can I deploy a smart contract to RSK without using Truffle?
使用 solc
编译 Solidity 文件后,如何将输出字节码作为智能合约部署到 RSK?
我已经知道如何使用 Truffle 来执行此操作,但是有哪些替代方法可用于此任务?
RSK(大部分)与以太坊兼容。
特别是对于开发工具,
它具有 JSON-RPC 兼容性和 VM 兼容性。
所以如果你是以太坊开发者,
您可以使用您熟悉的工具/库。
这里有几种方法,除了 Truffle:
- using Geth console and Remix,或
- using Metamask/Nifty and Remix,或
- 使用 MyCrypto 或 MyEtherWallet
合约部署工具(如果你有合约字节码)。
如果您想手动执行此操作,
您可以通过以下方式使用终端
使用 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,
或您钱包中的等效方法。
是的,很高兴知道在这些情况下会发生什么。简短回答:你发送一个交易,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 中的代码示例(参见执行设置)
我会添加直接提供字节码部署命令的功能,过几天我会写一个post,描述更有条理
使用 solc
编译 Solidity 文件后,如何将输出字节码作为智能合约部署到 RSK?
我已经知道如何使用 Truffle 来执行此操作,但是有哪些替代方法可用于此任务?
RSK(大部分)与以太坊兼容。 特别是对于开发工具, 它具有 JSON-RPC 兼容性和 VM 兼容性。 所以如果你是以太坊开发者, 您可以使用您熟悉的工具/库。 这里有几种方法,除了 Truffle:
- using Geth console and Remix,或
- using Metamask/Nifty and Remix,或
- 使用 MyCrypto 或 MyEtherWallet 合约部署工具(如果你有合约字节码)。
如果您想手动执行此操作,
您可以通过以下方式使用终端
使用 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
.
另请注意,就像任何其他交易一样
修改区块链的状态,
您还需要签署部署交易,
为了生产 SIGNED_CONTRACT_DEPLOYMENT_BYTECODE
。
您可以为此使用 eth_sign
RPC,
或您钱包中的等效方法。
是的,很高兴知道在这些情况下会发生什么。简短回答:你发送一个交易,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 中的代码示例(参见执行设置)
我会添加直接提供字节码部署命令的功能,过几天我会写一个post,描述更有条理