ETH的信息访问
对USDT的数据操作的简单实现
对稳定币的数据进行细粒度的操作,需要对其三条链进行数据同步,并使用RPC或(直接访问其数据库)获取信息。
ETH的信息访问
ERC-20 是一个 以太坊 区块链 上的 智能合约的一种协议标准。USDT也是可选使用ERC20协议将交易写入ETH中。
对ETH的完整信息访问,需要安装
GETH
同步ETH的数据(过大,不建议尝试)。都使用GETH创建本地轻节点,或者创建私有链进行测试。
1.安装GETH
geth 的安装教程请参见 Building Ethereum.
2.启动本地节点
启动并开始同步区块(fast模式),开启HTTP RPC访问
1 | geth --datadir .\eth_data\ --http --http.port 1234 --http.corsdomain '*' --cache=1024 --syncmode "fast" |
3.GETH的API文档
4.GETH的RPC API文档
5.基于Python的RPC访问区块链信息
1 | import requests |
result:
1 | response: {"jsonrpc": "2.0", "id": 0, "result": {"difficulty": "0x3ff800000", "extraData": "0x476574682f76312e302e302f6c696e75782f676f312e342e32", "gasLimit": "0x1388", "gasUsed": "0x0", "hash": "0x88e96d4537bea4d9c05d12549907b32561d3bf31f45aae734cdc119f13406cb6", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "miner": "0x05a56e2d52c817161883f50c441c3228cfe54d9f", "mixHash": "0x969b900de27b6ac6a67742365dd65f55a0526c41fd18e1b16f1a1215c2e66f59", "nonce": "0x539bd4979fef1ec4", "number": "0x1", "parentHash": "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3", "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x219", "stateRoot": "0xd67e4d450343046425ae4271474353857ab860dbc0a1dde64b41b5cd3a532bf3", "timestamp": "0x55ba4224", "totalDifficulty": "0x7ff800000", "transactions": [], "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "uncles": []}} |
再配合nosql,如:MongoDB可以提炼,存储区块链数据。
BTC的信息访问
Omni 是一个创建和交易自定义数字资产和货币的平台。它是建立在最流行、最受审计、最安全的区块链——比特币之上的软件层。
雷同,USDT也可以使用Omni协议将交易写入BTC链中。
为了获取BTC中USDT的数据,我们需要借助OmniCore同步BTC中USDT的数据,使用RPC或(直接访问数据库)操作数据。
1.安装OmniCore,启动节点
基于docker-compose
1 | version: '3' |
其中-testnet
的意思是使用Bitcoin测试网。
网络的配置文件bitcoin.conf
,默认放置在/root/.bitcoin/
下
1 | txindex=1 |
1 | 配置文件说明文档 |
2.USDT常用API
1 | 新建账户地址 |
3.Omni的RPC API
omni的JSON-RPC API与bitcoin的完全相同,使用的时候只是相当于将bitcoin的命令集进行了扩展。
具体的可以查询JOSN-RPC API 和https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md
4.基于Python的RPC访问区块链信息
可以使用原有的bitcoin的JSON-RPC
API包进行开发。例如,使用python-bitcoinrpc.
1 | from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException |
参考:
Ethereum JSON-RPC Specification
https://www.jianshu.com/p/3445ff08229a