omni USDT

draft: false date: 2018-06-20 13:28:54 cover: /images/avatar.jpeg tags: - bigzhu preview:


介绍

tether 公司, 基于 bitcoin 构造了一个 omni layer, 似乎唯一的区别就是可以发行 token.

连项目都是从 bitcoin fork 过来的

比较出名的就是上面的 USDT 这个 token, 锚定1美元

安装

和 bitcoin 差不多, 要安装很多依赖, 罗嗦得很. 这里不详述了.

启动

要建立一个和 bitcoin 一样的配置文件

~/.bitcoin/bitcoin.conf

配置文件的介绍说明: configuration

通常的配置项目包括这些:

server=1
rpcuser=omnicorerpc
rpcpassword=5hMTZI9iBGFqKxsWfOUF
rpcallowip=127.0.0.1
rpcport=8332
txindex=1
datacarriersize=80
logtimestamps=1
omnidebug=tally
omnidebug=packets
omnidebug=pending

测试币获取

向地址 moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP 打入 TBTC

1个 TBTC 就可以收到 100 OMNI 和 100 TOMNI

rpc 接口

rpc-api 列出了增加的一些 omni 接口

原理分析

omni 的数据是基于 bitcoin 的链, 比如一笔 omni 交易, 在 btc 浏览器上查的交易是这样

在 omni 的浏览器上看是这样

API

网友中文介绍在这

omni_listproperties 代币列表

omni_listproperties * https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md#omni_listproperties

列出所有的代币列表

比如 31 就是 TetherUS

{
    "propertyid": 31,
    "name": "TetherUS",
    "category": "Financial and insurance activities",
    "subcategory": "Activities auxiliary to financial service and insurance activities",
    "data": "The next paradigmparadigmradigm of money.",
    "url": "https://tether.to",
    "divisible": true
  },

31 就是 USDT

SendMany

似乎没有 sendmany

只能用 omni_send 来转的样子

Address

应该是用 btc 的地址获取就行

getTransaction

omni_gettransaction

Balance

要检查 btc 以及 USDT 两个币种的余额

SyncByNode

omni_listtransactions

复用 bitcoin 数据尝试

用 bitcoin 的节点数据, 向回打地址发送了 1 TBTC 84c3a5a00e80bdf180962848503f7a004326512f3b849ba7d5d820e6bc5d55c5

omni omni_getbalance n4oSacb66MFqcQhis5Mimyn96k7kDp5ubi 1

费用是从 n4oSacb66MFqcQhis5Mimyn96k7kDp5ubi 给到 moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP 的, 于是 n4oSacb66MFqcQhis5Mimyn96k7kDp5ubi 收到了 100 omni

omni omni_getbalance n4oSacb66MFqcQhis5Mimyn96k7kDp5ubi 2 还收到了 100 tomni

报错

出现了报错:

Error: Error loading wallet.dat: Wallet requires newer version of Omni Core

解决办法:

dumpwallet 在 importwallet

OMNI 让别的地址代出手续费