比特币通信协议 - 币圈消息

比特币通信协议篇11、二、TURN简介。在典型的情况下,TURN客户端连接到内网中,并且通过一个或者多个NAT到 详细

比特币怎样离线钱包 - 币圈消息

[复制链接]
49 0
wangjia 发表于 2022-11-3 15:12:03 | 只看该作者 |阅读模式 打印 上一主题 下一主题
比特币怎样离线钱包篇11、//这是签名之后的原始交易,直接去广播就行了。
2、从事区块链钱包方向已经快一年了,一直处于研究方向,没时间分享经验,趁着这次机会就分享一下大家比较头疼的基于Omni协议上USDT有坑的地方,以及如何离线签名!
3、//这是比特币的限制最小转账金额,所以很多usdt转账会收到一笔00000546的btc。
4、tran.addInput(Sha256Hash.wrap(output.getTxHash()),output.getVout(),newScript(HexUtil.decodeHex(output.getScriptPubKey()))).setSequenceNumber(TransactionInput.NO_SEQUENCE-2);。
5、000000000000001f是31的16进制,补零补足16位。
6、tran.addOutput(Coin.valueOf(changeAmount),Address.fromBase58(network,changeAddress));。
7、我们只要把这一部分构建好了就可以转usdt了。
8、TransactionInputtransactionInput=tran.getInput(i);。
9、如果有什么不明白的直接下面留言,
10、ScriptscriptPubKey=ScriptBuilder.createOutputScript(Address.fromBase58(network,output.getAddress()));。

比特币怎样离线钱包篇21、//先添加未签名的输入,也就是utxo。
2、StringsignedHex=HexUtil.encodeHexStr(tran.bitcoinSerialize());。
3、如果做过btc的离线签名,那么这一部分应该可以直接复用,加一个ouput就行了,需要引bitcoinj这个依赖,StringchangeAddress,LongchangeAmount,StringtoAddress,Listoutputs,Longamount){。
4、ECKeyecKey=DumpedPrivateKey.fromBase58(network,privateKey).getKey();。
5、0000000000989680是金额*10^8再转16进制,补零补足16位。
6、大家好,我是凉凉,今天是第一次写博客,如有不足之处,请多多包涵!
7、//构建usdt的输出脚本注意这里的金额是要乘10的8次方。
8、StringusdtHex= 6a146f6d6e69 +String.format( %016x ,31)+String.format( %016x ,amount);。
9、前言。//这是交易的hash。
10、Utxooutput=outputs.get(i);。
比特币怎样离线钱包篇31、for(inti=0;i outputs.size();i++){。
2、returnsignedHex;。
3、ECKey.ECDSASignatureecSig=ecKey.sign(hash);。
4、usdt的输出脚本的组成。正文。
5、Transactiontran=newTransaction(MainNetParams.get());。
6、//下面就是签名。代码如何写。
7、}。StringtxHash=HexUtil.encodeHexStr(Utils.reverseBytes(Sha256Hash.hash(Sha256Hash.hash(tran.bitcoinSerialize()))));。
8、if(changeAmount.compareTo(0L) 0){。
9、6a146f6d6e69是固定的前缀,测试网络和正式网络都是一样的!
10、for(Utxooutput:outputs){。
比特币怎样离线钱包篇41、TransactionSignaturetxSig=newTransactionSignature(ecSig,Transaction.SigHash.ALL,false);。
2、我们先要知道BTC和USDT之间的关系,omni协议的usdt转账就是基于btc链的,和btc转账的区别就是多了一个null_data的输出脚本。
3、Sha256Hashhash=tran.hashForSignature(i,scriptPubKey,Transaction.SigHash.ALL,false);。
4、转usdt的关键。transactionInput.setScriptSig(ScriptBuilder.createInputScript(txSig,ecKey));。
5、MainNetParamsnetwork=MainNetParams.get();。
6、tran.addOutput(Coin.valueOf(546L),Address.fromBase58(network,toAddress));。
7、tran.addOutput(Coin.valueOf(0L),newScript(Utils.HEX.decode(usdtHex)));。
极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:比特币怎样离线钱包
喜欢 (0)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
收藏
收藏0
转播
转播
分享
分享
分享
淘帖0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子2930859

发布主题
阅读排行更多+

Powered by 顺水鱼MT4外汇EA网! X3.2© 2001-2017 顺水MT4外汇EA公司.( 陕ICP备17014341号-1