JSON-RPC部署调用合约

JSON-RPC是一种无状态的,轻量级的远程过程访问协议,并使用JSON作为其数据格式。

JSON-RPC主要是在处理过程中定义了一些数据结构和规则,能够在不同的消息传递环境中如Sockets、HTTP中传递信息。

这里将介绍如何使用JSON RPC接口在以太坊私链中部署调用合约。

 

编写合约:

contract SimpleTest {
    uint data;
    function set(uint n) public {
        data = n*3;
    }
    function get() public returns (uint) {
        return data;
    }
}

 

编译合约:

    首先需要在一个终端中(A终端)开启以太坊私链;然后再开启另一个终端(B终端)并输入以下命令来调用以太坊中的JSON-RPC接口。

    所有JSON-RPC都需要使用curl的方式来调用,jsonrpc输入的是版本号,目前一般使用2.0;method中的"eth_compileSolidity"是要调用的JSON-RPC接口方法名;params中是调用方法需要传入的参数,如果有多个参数,也会包含多个字段;最后的localhost:8545是要调用的以太坊地址,由于我们开启的是私有链,默认以太坊go-ethereum客户端端口号为8545。B终端中返回结果,返回的结果中最重要的数据就是code字节码和abiDefinition数据。

curl --data '{"jsonrpc":"2.0","method": "eth_compileSolidity", "params": ["contract SimpleTest {uint data;function set(uint n) public {data = n*3;}function get() public returns (uint) {return data;}}"], "id": 5}' localhost:8545

报错:

 

查询原因,因为端口8545未打开,按以下命令重新启动geth:

geth --datadir "~/.ethereum&#
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值