由于公司近期需要区块链合约进行投票,因此需要搭建波场节点(Tron节点),波场地址的生成免费,但是在波场公链上查询不到,看官网文档才知道还需要进行广播才能查询地址信息,广播地址需要能量或者波场币,这点跟以太坊区别还是很大,以太坊生产地址后就可以在官网公链查询到。
github官网:https://github.com/tronprotocol/java-tron
波场国外浏览器(国内无法访问):https://tronscan.org/#/
波场国内浏览器:https://tronscan.io/
搭建中文文档: https://tronprotocol.github.io/docum
1、https://github.com/tronprotocol/java-tron/releases/tag/GreatVoyage-v4.1.1
打开链接进行下载 FullNode.jar,可能链接会修改,如果打不开请在https://github.com/tronprotocol/java-tron的右侧打开,国外的现在相当的慢,现在提供国内地址链接: https://pan.baidu.com/s/1tewOJRGnsZmHe5ZRRZ1wDw 提取码: i472
2、修改 rpc.port = 50051,修改node.trustNode = “0.0.0.0:50051”,修改node.listen.port = 18889,修改vm.supportConstant = true
3、直接启动以下命令(注:一定要安装java运行环境,如果内容不同步请重新):
nohup java -Xmx14g -XX:+UseConcMarkSweepGC -jar FullNode.jar --witness -c main_net_config.conf >> /dev/null 2>&1 &
4、查询同步块高度:curl -X POST http://127.0.0.1:8090/wallet/getnowblock
wallet/triggersmartcontract
作用:调用合约
curl -X POST http://127.0.0.1:8090/wallet/triggersmartcontract -d '{"contract_address":"4189139CB1387AF85E3D24E212A008AC974967E561","function_selector":"set(uint256,uint256)","parameter":"00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002","fee_limit":10,"call_value":100,"owner_address":"41D1E7A6BC354106CB410E65FF8B181C600FF14292"}'
参数说明:
contract_address,默认为hexString格式
function_selector,函数签名,不能有空格
parameter:调用参数[1,2]的虚拟机格式,使用remix提供的js工具,将合约调用者调用的参数数组[1,2]转化为虚拟机所需要的参数格式
fee_limit:最大消耗的SUN(1TRX = 1,000,000SUN)
call_value:本次调用往合约转账的SUN(1TRX = 1,000,000SUN)
owner_address:发起triggercontract的账户地址,默认为hexString格式
call_token_value:本次调用往合约中转账10币的数量,如果不设置token_id,这项设置为0或者不设置
token_id:本次调用往合约中转账10币的id,如果没有,不需要设置
可选参数Permission_id,多重签名时使用,设置交易多重签名时使用的permissionId
返回值:TransactionExtention, TransactionExtention中包含未签名的交易Transaction
wallet/getcontract
作用:获取合约
demo: curl -X POST http://127.0.0.1:8090/wallet/getcontract -d '{"value":"4189139CB1387AF85E3D24E212A008AC974967E561"}'
参数说明:
value:合约地址,默认为hexString格式
返回值:SmartContract,智能合约的内容