共计 2320 个字符,预计需要花费 6 分钟才能阅读完成。
什么是 USDT
本文中,我们介绍 Tether 公司利用 bitcoin 区块网络构造的 omni layer,在这个 overlay network 上各方可以发行 token,tether 公司在 omni layer 上发行了代号为 USDT 的 token,1:1 锚定美元。tether 的思想很简单,大家把美元给我,给我 1 美元,我发行 1USDT,美元存放到指定的资产账户,大家都可以查询,发行的 USDT 总量也可以在区块上进行查询。当兑换的时候,给我 1USDT,我返还 1 美元。
Omni(USDT) 钱包安装
一. 下载 Omni Layer 钱包
wget https://bintray.com/artifact/download/omni/OmniBinaries/omnicore-0.3.0-x86_64-linux-gnu.tar.gz
二. 解压并运行
解压 tar -xzvf omnicore-0.3.0-x86_64-linux-gnu.tar.gz
拷贝依赖库至本地 sudo cp omnicore-0.3.0/lib/* /lib
打开钱包目录 cd omnicore-0.3.0/bin
运行 ./omnicored
初次启动会生成 ~/.bitcoin/ 文件夹
三. 编写配置文件
vim ~/.bitcoin/bitcoin.conf
配置文件说明文档
txindex=1 #代表事务初始索引
listen=1 #监听模式,默认启动
server=1 #代表开启 RPC 访问
rpcuser=username #RPC 用户名
rpcpassword=password #RPC 密码
rpcport=8888 #RPC 端口
rpcallowip=127.0.0.1 #允许 RPC 访问 ip
四. 后台启动服务
nohup ./omnicored –datadir=/data/btcdata –conf=/root/.bitcoin/bitcoin.conf 2>/data/btclog.log &
五. 启动方式
./omnicored -testnet 连接 test3 测试网络,会同步 test3 网络的区块数据(约 20G)
./omnicored -regtest 单机运行,不需要连接其他网络,区块数据在本地运行。
./omnicored 连接比特币主网网络,会同步真实区块数据(约 250G,要 4 - 5 天时间同步完成)
USDT api 常用命令行示例
新建账户地址
./omnicore-cli “getnewaddress” myAddress
获取钱包比特币数量
./omnicore-cli getinfo
获取 USDT 数量
./omnicore-cli “omni_getbalance” “14Nzwd3SU4eWgiPW68RuvsgsazYEgBXjKQ” 31
发送代币 - 转账
./omnicore-cli “omni_send” “14Nzwd3SU4eWgiPW68s” “1KzU8ATU6bzbC7MDaQw8od2f” 31 “1000”
return:7ccbf34be07e0de14c63bef01807b3095d4faf05288
(USDT 的转账实际上是代号为 31 的 OmniCore 令牌转账。Omnicore 提供了多套 api 实现令牌转账功能,
v0.3.1 版本之前,可以使用 omni_send 和 omni_sendall。这种方式必须保证发送地址上不仅需要有令牌余额,
还需要有一定数量的比特币用于支付手续费。
从 v0.3.1 版本开始,Omnicore 提供了两个新的 api omni_funded_sendomni_funded_sendall,
这种方式的好处在于可以指定手续费的支付方,所有的令牌交易都可以使用统一的地址进行支付比特币手续费,
而不需要发送者自身拥有比特币。但这里并未设定手续费的具体数量,
系统将根据在配置文件中的关于手续费的配置文件进行动态设定。)
获取单笔交易详情(钱包中创建的用户才可以转账,)
./omnicore-cli “omni_gettransaction” 7ccbf34be07e0de14c63bef01807b3095d4faf05288
查询本地事务列表(充值,转账记录)
./omnicore-cli “omni_listtransactions” ‘*’ 10
JSON-RPC API 使用 PHP 二次开发
omni 的 JSON-RPC API 与 bitcoin 的完全相同,使用的时候只是相当于将 bitcoin 的命令集进行了扩展。具体的 JOSN-RPC API 可以查询 这里 二次开发过程中,可以使用原有的 bitcoin 的 JSON-RPCAPI 包进行开发。例如,使用 EasyBitcoin-PHP.
include_once “easybitcoin.php”;
$bitcoin = new Bitcoin(“rpc-user”,”rpc-pass”,’127.0.0.1′,’8888′);
var_dump($bitcoin->getinfo());
var_dump($bitcoin->omni_getbalance($address,31))// 查询 $address 上 USDT(property id = 31)余额
参考文档:
1.https://www.jianshu.com/p/bd573e2df746
2.https://blog.csdn.net/guokaikevin/article/details/79440230
3.https://www.cnblogs.com/X-knight/p/9164955.html
4.https://www.codetd.com/article/1692438
5.https://www.jianshu.com/p/4a8054146ef1