參考:https://www.jianshu.com/p/bd573e2df746
usdt 節點
錢包配置設置
bitcoin.conf
server=1 #代表開啟RPC訪問
txindex=1 #代表事務初始索引
rpcuser=你的rpc用戶名
rpcpassword=你的rpc密碼
rpcallowip=127.0.0.1 #允許訪問的IP
rpcport=8332 #允許訪問的端口
paytxfee=0.00001 #控制bitcoin交易的手續費
minrelaytxfee=0.00001 #控制bitcoin交易的手續費
datacarriersize=80 #含數據的交易大小默認值
logtimestamps=1
omnidebug=tally
omnidebug=packets
omnidebug=pending
預估手續費網址
https://bitcoinfees.earn.com/
https://www.buybitcoinworldwide.com/
開啟服務
omnicored -testnet #連接test3測試網絡,會同步test3網絡的區塊數據(約20G)
omnicored -regtest #單機運行,不需要連接其他網絡,區塊數據在本地運行。
omnicored #連接比特幣主網網絡,會同步真實區塊數據(約180G)。
停止服務
omnicore-cli stop
查看信息
omnicore-cli -getinfo
omnicore-cli omni_getinfo
區塊同步數據參考網站
json-rpc協議
請求對象:
{
"jsonrpc": "2.0",//rpc版本號
"method": "your_method",//方法名
"params": [//參數數組
"var1",
"var2"
],
"id": 9527//請求
}
返回對象:
{"jsonrpc": "2.0", "result": "this is result", "id": 9527}
錯誤對象返回:
{
"result": null,
"error": {
"code": -32601,//錯誤碼
"message": "Method not found"//錯誤原因
},
"id": 9527
}
生成地址
omnicore-cli getnewaddress
omnicore-cli getnewaddress feeaccount
omnicore-cli getaddressesbyaccount feeaccount
測試網絡獲取BTC
https://testnet.coinfaucet.eu/en/
https://testnet.manu.backend.hamburg/faucet
測試網絡是沒有測試usdt的,所有只能用test omni代替usdt進行測試
發送TBTCmoneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP即可獲得少量TOMNI,匯率為100 TOMNI/1 TBTC,令牌id分別為1和2。
比特幣UTXO
未花費輸出, 找零地址
返回:UTXO列表
min_confrim (int,可選) 最小確認
max_comfrim(int ,可選)最大確認
address (string[],可選)地址列表
omnicore-cli listunspent 0 999999 '["mjH1iB7wt5TC4f8qjvZqtmBXd1aCPSPinC"]'
USDT轉賬
omni_funded_send
omni_funded_sendall
fromaddress (string,必選) 令牌發送者
toaddress (string,必選) 令牌接收者
propertyid (number,必選) 令牌id
amount (string,必選) 發送金額
feeaddress (string,可選)用於支付手續費的地址,如果設置此地址,那么此地址上必須擁有比特幣
omnicore-cli omni_funded_send mjH1iB7wt5TC4f8qjvZqtmBXd1aCPSPinC mqrA5Ai8XdKe1ob1L2HwyYr3TXUf9nUeBf 1 5 mpaumxor659PhoJhXp1VCVHVwbFCZSRmuf
a25260a79243a48df21ca2d9fba2209818ea1339026d91b6476d531929c52dad
錯誤返回:
{
error code: -212
error message:Error choosing inputs for the send transaction
}
記得發送前檢查是否余額充足
查詢交易事務
omni_gettransaction
omnicore-cli omni_gettransaction a25260a79243a48df21ca2d9fba2209818ea1339026d91b6476d531929c52dad
查詢地址 USDT余額額
omni_getbalance
address 地址
id 令牌id
omnicore-cli omni_getbalance mjH1iB7wt5TC4f8qjvZqtmBXd1aCPSPinC 1
查詢錢包內的所有地址的USDT余額列表
omnicore-cli omni_getwalletaddressbalances
查詢錢包內的USDT總額
omnicore-cli omni_getwalletbalances
中心化錢包
中心化錢包的本質是代替用戶托管資產,錢包保存了所有地址的私鑰,對上面的令牌有完全的使用權。對於用戶而言,對資產的流動有知情權,但並沒有實際控制權。一個完整的中心化錢包可以分為兩層,記賬層和區塊底層,至少需要集成四個基本的業務功能
1,生成地址 #getnewaddress
2,掃描充值事務 #本地事務,6個確認, 充值到用戶的綁定的地址
3,轉移用戶地址余額,到中央地址, 注意手續費問題, 上次完成了才能做下次
4,提現行為, 注意手續費問題, 單例
linux 守護進程
ps -axj
nohup omnicored -testnet &
php 執行linux命令
system() 輸出並返回最后一行shell結果。
exec() 不輸出結果,返回最后一行shell結果,所有結果可以保存到一個返回的數組里面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system("ls -al");
【使用之前要在php.ini中把safe_mode關閉】