1、需要搭配合约IDE remix进行使用,这样很方便。
- 首先获取remix部署在私链的智能合约地址进行保存
- 将需要调用的方法进行复制到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形式的调用合约方法。
- 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测试并发?