rippled 02 rippled api 协议使用
rippled提供3中api接口:websocket 协议、jsonrpc协议、和本地命令行调用。
具体接口内容可以看官网说明:
https://xrpl.org/account_info.html
下面是根据协议和接口文档做的python测试效果
01 websocket协议
#!/usr/bin/python3
# coding: utf-8# rippledWebSocket.py# 使用ws/wss接口demo
# https://xrpl.org/account_info.html
# 需要安装websocket-clinet
#pip install websocket-clientfrom websocket import create_connection
import json# 测试xrpapi调用
def testGetInfo(json_params, ws_url, json_type = True):ws = create_connection(ws_url)if json_type:ws.send(json.dumps(json_params))else:ws.send(json_params)result = ws.recv()print(str(result))# 本地运行的rippled,采用git上面的默认配置,ws协议端口6006
wsurl = "ws://127.0.0.1:6006/"
# json字符串
params_test01 = '{"id": 14, "command": "ledger", "ledger_index": "validated", "full": false, "accounts": false, "transactions": false, "expand": false, "owner_funds": false}'# json对象
params_test02 = {"id": 2,"command": "account_info","account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59","strict": True,"ledger_index": "validated"
}# account_channels
account_channels = {"id": 1,"command": "account_channels","account": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH","destination_account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn","ledger_index": "validated"
}# account_currencies
account_currencies = {"command": "account_currencies","account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59","strict": True,"ledger_index": "validated"
}if __name__ == "__main__":print("\naccount_info")testGetInfo(params_test01, wsurl, False)print("\nledger")testGetInfo(params_test02, wsurl)# account_channelsprint("\naccount_channels")testGetInfo(account_channels, wsurl)# account_currenciesprint("\naccount_currencies")testGetInfo(account_currencies, wsurl)
运行结果
account_info
{"id":14,"result":{"ledger":{"accepted":true,"account_hash":"4D6FA0EAD351DDE454AACB038A1F574AE137FFE3405316FEA59C802BA7BB9B15","close_flags":0,"close_time":667187590,"close_time_human":"2021-Feb-21 01:53:10.0000000 UTC","close_time_resolution":10,"closed":true,"hash":"EF0C3418EE38820D2C590C9FD6CF6EA60B07DC74BFCF92DAEC48E94A6AC40CB4","ledger_hash":"EF0C3418EE38820D2C590C9FD6CF6EA60B07DC74BFCF92DAEC48E94A6AC40CB4","ledger_index":"61722367","parent_close_time":667187581,"parent_hash":"310E42AC654CD22E5184056238DE9DADFB8D612D23E4FF9C80D0C713368C15A8","seqNum":"61722367","totalCoins":"99990700724043204","total_coins":"99990700724043204","transaction_hash":"E2D2E2228935EF283AE8A94A2A5234246E897B9EABAA80A395B4D7805CCAF2F2"},"ledger_hash":"EF0C3418EE38820D2C590C9FD6CF6EA60B07DC74BFCF92DAEC48E94A6AC40CB4","ledger_index":61722367,"validated":true},"status":"success","type":"response"}ledger
{"id":2,"result":{"account_data":{"Account":"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59","Balance":"13315612685","Flags":0,"LedgerEntryType":"AccountRoot","OwnerCount":17,"PreviousTxnID":"D2FA1C28EF87E53029327AA832C378674B3ACA0551CF9EA1F65BB8CA34913FAB","PreviousTxnLgrSeq":55180009,"Sequence":1406,"index":"4F83A2CF7E70F77F79A307E6A472BFC2585B806A70833CCD1C26105BAE0D6E05"},"ledger_hash":"EF0C3418EE38820D2C590C9FD6CF6EA60B07DC74BFCF92DAEC48E94A6AC40CB4","ledger_index":61722367,"validated":true},"status":"success","type":"response"}account_channels
{"id":1,"result":{"account":"rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH","channels":[],"ledger_hash":"EF0C3418EE38820D2C590C9FD6CF6EA60B07DC74BFCF92DAEC48E94A6AC40CB4","ledger_index":61722367,"validated":true},"status":"success","type":"response"}account_currencies
{"result":{"ledger_hash":"EF0C3418EE38820D2C590C9FD6CF6EA60B07DC74BFCF92DAEC48E94A6AC40CB4","ledger_index":61722367,"receive_currencies":["BTC","CNY","DYM","EUR","JOE","MXN","USD","015841551A748AD2C1F76FF6ECB0CCCD00000000"],"send_currencies":["ASP","BTC","CHF","CNY","DYM","EUR","JOE","JPY","MXN","USD"],"validated":true},"status":"success","type":"response"}
02 jsonrpc协议
#!/usr/bin/python
# coding: utf-8# rippledJsonRPC.py
# 使用rippled的默认配置,http协议端口好默认配置是5005import requests
session = requests.Session()# 使用jsonrpc接口demo
# https://xrpl.org/account_info.html
method = 'account_info'
params = [{"account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn","strict": True,"ledger_index": "current","queue": True}]'''
payload= {"jsonrpc":"2.0","method":method,"params":params,"id":2}
'''
payload= {"jsonrpc":"2.0","method":method,"params":params}
headers = {'Content-type': 'application/json'}
response = session.post('http://127.0.0.1:5005', json=payload, headers=headers)print('\nraw json response: {}'.format(response.json()))print('\nnetwork id: {}'.format(response.json()['result']))
运行效果
raw json response: {'result': {'account_data': {'Account': 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn', 'Balance': '9976', 'Flags': 1114112, 'LedgerEntryType': 'AccountRoot', 'MessageKey': '0200000000000000000000000038901D3A772963CF12FF7C0E010FE350B6CCC45D', 'OwnerCount': 0, 'PreviousTxnID': '85BC80F7FECB57FD074BBA54517C469B4BC242AEF894A8ED272798AA5394F5CC', 'PreviousTxnLgrSeq': 60003347, 'RegularKey': 'rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET', 'Sequence': 192221, 'index': '92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F'}, 'ledger_current_index': 61725000, 'queue_data': {'txn_count': 0}, 'status': 'success', 'validated': False}}network id: {'account_data': {'Account': 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn', 'Balance': '9976', 'Flags': 1114112, 'LedgerEntryType': 'AccountRoot', 'MessageKey': '0200000000000000000000000038901D3A772963CF12FF7C0E010FE350B6CCC45D', 'OwnerCount': 0, 'PreviousTxnID': '85BC80F7FECB57FD074BBA54517C469B4BC242AEF894A8ED272798AA5394F5CC', 'PreviousTxnLgrSeq': 60003347, 'RegularKey': 'rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET', 'Sequence': 192221, 'index': '92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F'}, 'ledger_current_index': 61725000, 'queue_data': {'txn_count': 0}, 'status': 'success', 'validated': False}
03 命令行运行效果
rippled --conf ..\etc\rippled.cfg account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated strict
D:\git\rippled\buildlib\install\rippled\bin>rippled --conf ..\etc\rippled.cfg account_info rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn validated strict
Loading: "..\etc\rippled.cfg"
2021-Feb-21 01:57:47.9259447 UTC HTTPClient:NFO Connecting to 127.0.0.1:5005{"result" : {"account_data" : {"Account" : "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn","Balance" : "9976","Flags" : 1114112,"LedgerEntryType" : "AccountRoot","MessageKey" : "0200000000000000000000000038901D3A772963CF12FF7C0E010FE350B6CCC45D","OwnerCount" : 0,"PreviousTxnID" : "85BC80F7FECB57FD074BBA54517C469B4BC242AEF894A8ED272798AA5394F5CC","PreviousTxnLgrSeq" : 60003347,"RegularKey" : "rhLkGGNZdjSpnHJw4XAFw1Jy7PD8TqxoET","Sequence" : 192221,"index" : "92FA6A9FC8EA6018D5D16532D7795C91BFB0831355BDFDA177E86C8BF997985F"},"ledger_hash" : "830FD444D7FC5453017AC67913EE6E825B6F3227ACBDA9C587E5E822534ECC73","ledger_index" : 61722438,"status" : "success","validated" : true}
}
rippled 02 rippled api 协议使用相关推荐
- 个人微信开发API协议接口
个人微信开发API协议接口对比 本文对比目前市面上用于微信个人号的所有API协议,主要包括 web版微信协议, ipad协议 , pc微信协议/mac协议 , hook pc版微信 , hook 安卓 ...
- 个人微信开发API协议
安卓微信的api,个人微信开发API协议,微信 ipad sdk,微信ipad协议,微信web版接口api,微信网页版接口,微信电脑版sdk,微信开发sdk,微信开发API,微信协议,微信接口文档sd ...
- 个人微信开发API协议接口大全
个人微信开发API协议接口大全 目前市面上用于微信个人号的所有API协议,主要包括 web版微信协议, ipad协议 , pc微信协议/mac协议 , hook pc版微信 , hook 安卓或者io ...
- 微信开发接口API协议
微信开发接口API协议,出自冬天不穿秋裤,天冷也要风度的程序猿之手,必属精品! 一.网络通讯协议 如上图,采用 datalength+databytes 的自定义长度的协议,其中: datalengt ...
- 调用个人微信API协议接口收发消息,发朋友圈
调用个人微信API协议接口收发消息,发朋友圈 java调用个人微信的API接口收发消息 /** * 接受微信好友发来聊天消息 * @author wechatno:tangjinjinwx * @pa ...
- sdk与开放API协议支持二次开发的摄像头
研发了一款提供SDK与开放API协议的摄像头 可以很方便 简单,轻量,快速整合到x86,android,iOS,ARM等平台的应用系统 OpCam能做什么 提供sdk与开放api协议 实时视频音频处 ...
- 02硬盘接口及协议及存储介绍
文章目录 硬盘接口类型 一. IDE磁盘 二. SATA磁盘 三.SCSI特性 四.SAS特性 五.FC 六.SSD 通讯协议 一.SCSI 二.FC(光纤通道) 三.iSCSI 四.iSCSI和FC ...
- Android反编译及破解API协议 记录1
时间:2018-07-31 地点:长沙 人物:lieyunye 起因: 经常逛某网站,但是它不提供在线观看或者下载功能,而且发现它只有Android版本的APP,体验也非常的糟糕,于是就想做一个iOS ...
- whatsapp群发代发api协议
全球外贸定制.企鹅1904573552 whatsapp精准获客,whatsapp群发,代发.可测试,价格便宜. 讯息内容违反WhatsApp商业政策:WhatsApp不允许商家要求用户提供敏感识别资 ...
- rippled win10 vs2019编译 rippled 1.6.0
win10 vs2019 编译rippled 1.6.0 01 必备资源 rippled官方提高的编译文档一直都是vs2017的 boost1.70.0的说明.最近抽空尝试win10下面 使用 vs2 ...
最新文章
- RMAN 与control文件和spfile文件的备份
- memcached failed to listen问题解决以及 结束daemon的方法
- C3P0-数据库连接池解读
- OOP 中的 方法调用、接口、鸭式辩型、访问者模式
- 修改MySQL的默认数据存储引擎
- 金字塔c_C/C++编程笔记:C语言入门题之正倒金字塔,正反三角形代码详解
- Effective Python: bytes, str, unicode
- java 开源客服系统_一个开源的智能客服系统
- 如何使用计算机上合并计算方法,Excel2019中合并计算的使用方法
- 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
- 一文让你读懂什么是智慧数字经营
- (BAT批处理)批量文件夹重命名,要求是在原文件夹名前加上英文字母前缀aa
- 福施福、爱乐维、玛特纳各成分比较(已换算成同一单位)
- JAVA回文数的判断
- 04-原始模型模式Quarkus实现
- 密室逃脱2碧绿色房间攻略
- 时间序列数据的截尾和拖尾分析(Python实现)
- 百度(baidu)、bing、sogo、360关键字 - 图片批量下载
- 论文翻译——Multi-Constrained Graph Pattern Matching in Large-Scale Contextual Social Graphs
- 查询python答案的app_智慧职教APPPython程序设计期末考试查题公众号答案