区块链钱包开发

背景

Tether(USDT)中文又叫泰达币,是一种加密货币,是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD,也是目前数字货币中最稳定的币,USDT目前发行了两种代币,一种是基于以太坊标准的ERC20 Token,另一种是基于Omni Layer协议的代币,在omni上,USDT代币ID为31。omni上的代币也是目前交易所支持最广泛的代币,而ERC20的USDT Token使用的较少;这里的内容以omni版本展开。

Omni

Omni是一个创建和交易自定义数字资产和货币的平台。 Omni协议底层基于比特币, Omni Core是一个增强的比特币核心,提供比特币的所有功能以及进化版的Omni Layer功能。数字货币交易的的相关开发都离不开要了解这些有的没的了。

Omni Core

Omni Core is a fast, portable Omni Layer implementation that is based off the Bitcoin Core codebase (currently 0.13). This implementation requires no external dependencies extraneous to Bitcoin Core, and is native to the Bitcoin network just like other Bitcoin nodes. It currently supports a wallet mode and is seamlessly available on three platforms: Windows, Linux and Mac OS. Omni Layer extensions are exposed via the JSON-RPC interface. Development has been consolidated on the Omni Core product, and it is the reference client for the Omni Layer.

Omni Core是基于Bitcoin Core代码库(当前为0.13)的快速,便携式Omni Layer实现。此实现不需要任何与比特币核心无关的外部依赖关系,并且像其他比特币节点一样是比特币网络固有的。它目前支持钱包模式,并且可以在三个平台上无缝使用:Windows,Linux和Mac OS。Omni Layer扩展通过JSON-RPC接口公开。开发已整合到Omni Core产品上,它是Omni Layer的参考客户端。

推荐学习前先了解下区块链,比特币,怎么开发比特币钱包,了解基于比特币的彩色币开发流程,就可以更好地开始接下来的学习和开发。

下载omnilayer钱包,官方提供了客户端下载和core项目下载;

https://www.omnilayer.org/download.html

windows

官网下载安装 进入qt目录
命令行:
1.开始客户端

> omnicore-qt.exe -testnet -server  -rpcbind=127.0.0.1 -rpcport=18332 -rpcuser=RPCuser -rpcpassword=RPCpasswd -datadir=“f:xxx”

如果安装了其他节点
需要指定data目录

> -datadir=“f:xxx”

指定钱包文件

> -wallet= “”

2. mac/linux/unix 这里使用core核心包

进入数据库目录:

// 下载
wget https://bintray.com/artifact/download/omni/OmniBinaries/omnicore-0.3.0-x86_64-linux-gnu.tar.gz
// 解压后记录对应目录
cd omnicore-0.3.0/bin
./omnicored -testnet 连接test3测试网络,会同步test3网络的区块数据(约20G)
./omnicored          连接比特币主网网络,会同步真实区块数据, 电脑需要至少50G容量,同步很久,块很重,耐心等待,

关闭提示:

在命令行窗口 command+c退出,最好别强退

启动:

// ./bin/omnicored 无效则切换到qt启动
./bin/omnicore-qt  -testnet -server -rpcbind=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword

启动2:(其他电脑访问)

 ./bin/omnicore-qt  -testnet -server -rpcallowip=192.168.18.35   -rpcport=18332  -rpcuser=omnicorerpc -rpcpassword=Bngj987Ncid9893 -rpcallowip=192.168.16.113

测试api:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword getinfo

查看私钥:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword dumpprivkey n1dnFGMxuxkDf1Ns5G2uYhaqk2ETWPuYQG

查看到账:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword getbalance

获取交易信息:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword omni_listtransactions

根据发送方获取返回USDT信息:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword omni_getbalance n1dnFGMxuxkDf1Ns5G2uYhaqk2ETWPuYQG 1

在omni节点发送给

moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP

btc可返还omni

查看入账:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword omni_getbalance mhf2ibPWMoeyibR2jS3jPLZQYTJsFSoG5r 1

测试网络进入QT桌面端

./bin/omnicore-qt -testnet -server -rpcbind=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword

获取指定地址交易列表listUnspent

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword listunspent  0 999999 '["mhf2ibPWMoeyibR2jS3jPLZQYTJsFSoG5r"]'

发送usdt

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword  omni_sendrawtx "mhf2ibPWMoeyibR2jS3jPLZQYTJsFSoG5r" "000000000000001f000000000000000a" "msis3b45PQriomes1zCAfNJpobggP1yusr"

导入特定地址到节点:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword importprivkey cVKMjDVaWevxmRCrNXjTPpz77SSjWvQWp1eCj5zKBpEcaASK7Gib '' false ('': account false:rescan)
如果(btc/usdt)要通过api查询余额,rescan需要设置为true

./bin/omnicore-cli -rpcconnect=192.168.16.11 -rpcport=8332 -rpcuser=RPCuser -rpcpassword=RPCpasswd importprivkey cR8rJpmWAkRPdPFUPjUjstNqf8mkqQMkEDEpDe3Q485JtaXUbu15

查询余额:

./bin/omnicore-cli -rpcconnect=127.0.0.1 -rpcport=18332 -rpcuser=RPCUser -rpcpassword=RPCPassword omni_getbalance mhRPUxrDxL7unBauvgqKkGvsVqnJ3Jx6kU 2

以上仅作为参考,总结不是很到位。

原文地址:https://www.cnblogs.com/mapleChain/p/11527645.html