curl通过JSON-RPC形式调用复杂智能合约(可以测试合约)

1、需要搭配合约IDE remix进行使用,这样很方便。

  1. 首先获取remix部署在私链的智能合约地址进行保存
  2. 将需要调用的方法进行复制到geth console 进行调用如下命令
    web3.sha3("addProduct(uint8,uint8,string,uint16,uint16,uint16,uint16,string,string,string,string)").substring(0, 10)

 其实上述步骤第二步不用这么麻烦,可以通过remix里面进行使用。

为什么要使用这样麻烦的形式呢?

答:可以通过curl形式进行测试并发及私链性能

 仔细看两个箭头你会发现刚刚web3截取的就是这个input里面的。可以进行复制下来。

 curl -H "Content-Type":application/json --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from":"0xb3fd719dcfed41f3cc921bd63eace9606bcb68a1", "to":"0xADad8A516398Fc7f18814d046a313F2C08E093bf", "data":"0x334978dd000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000"}], "id": 8}' 192.168.1.161:8545

 如上命令就是通过curl形式的调用合约方法。

  1. from是如下命令获取,获取的是矿工地址,也就是产生交易的地址

    curl -H "Content-Type":application/json --data '{"jsonrpc":"2.0","method":"eth_coinbase", "id":1}' 192.168.1.161:8545

 2、to是合约地址

 3、data是刚刚remix里面复制的,不用进行其他操作。

 4、ip及端口是私链一个节点的ip和部署私链的端口

可以在哪里使用?

可以在Postman和jmeter里面进行使用

{"jsonrpc":"2.0","method": "eth_call", "params": [{ "to":"0xADad8A516398Fc7f18814d046a313F2C08E093bf", "data":"0x993937e6"},"latest"], "id": 8}

如上形式就是在Postman中使用。Postman中如下图进行设置即可

Postman测试并发?

 

猜你喜欢

转载自blog.csdn.net/weixin_46085718/article/details/127101823
今日推荐