bro , any news?

在 2017年11月7日星期二 UTC+8下午7:38:21,Emanuele Pagliara写道:
>
> 早上好,
>
> 我试图创建一个应用程序与观看钱包,连接到区块链和另一个应用程序与钱包,私人密钥,没有连接到它,以维持私钥的秘密和离线。
> 我选择bitcoinj作为java库,并且我希望在观看钱包的应用程序上创建事务,并将它以十六进制字符串序列化到privat钱包的应用程序,以便由它签名,这里是我用于序列化的代码交易:
>
> //tx is my raw transaction
> String hexTx = DatatypeConverter.printHexBinary(tx.bitcoinSerialize());
>
>
> 问题是,我不能签署我从字符串反序列化的事务,这里我使用的代码来淡化字符串并为签名提交反复的事务:
>
>     
> byte[] serializedTx = hexStringToByteArray(hexTx);
>
> Transaction deserializedTx = new Transaction(params,serializedTx);
>
> SendRequest req = SendRequest.forTx(tx);
>
> //secret wallet with private key
> coldWallet.signTransaction(req);
>
>
> 其中方法hexStringToByteArray(hexTx)定义如下:
>
> private static byte[] hexStringToByteArray(String s) {
>      int len = s.length();
>      byte[] data = new byte[len / 2];
>      for (int i = 0; i < len; i += 2) {
>          data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
>                  + Character.digit(s.charAt(i+1), 16));
>      }
>      return data;
>  }
>
>
> 为了更好地理解这里的问题,在串行化之前的交易记录:
>
> 2017-11-06 17:56:31,248 INFO iibTestRawTransaction [main]    
> 5c3996212e48725e69eadcef02b4ea 
> 2826e0198e14ed9dd2002d8db0b3e7 08c7
>      在<no scriptSig>中 
>           outpoint:8bfcfba135101c5d15641602881acc 
> 4799069ea1885e93c6e6d9f07d2dd7 
> 802f:0 hash160:984201354d5781a017d3be3a006ae6 828c553844
>      out DUP HASH160 PUSHDATA(20)[ f0497fd691918563d96258eb7e7bdb f3f88a8452] 
> EQUALVERIFY CHECKSIG 959.9763362 BTC
>      out RETURN PUSHDATA(5)[68656c6c6f] 0.0000273 BTC
>      费用0.00495049 BTC / kB,对于101字节为0.0005 BTC
>      prps USER_PAYMENT
>
> 当我反序列化十六进制字符串回到一个交易对象,我获得这个日志:
>
> 2017-11-06 17:56:31,252信息iibTestRawTransaction [main]反序列化事务:
>   5c3996212e48725e69eadcef02b4ea 2826e0198e14ed9dd2002d8db0b3e7 08c7
>      在<no scriptSig>中
>           outpoint:8bfcfba135101c5d15641602881acc 
> 4799069ea1885e93c6e6d9f07d2dd7 
> 802f:0
>      out DUP HASH160 PUSHDATA(20)[ f0497fd691918563d96258eb7e7bdb f3f88a8452] 
> EQUALVERIFY CHECKSIG 959.9763362 BTC
>      out RETURN PUSHDATA(5)[68656c6c6f] 0.0000273 BTC
>      prps UNKNOWN
>
>
> 我在这个过程中丢失了一些数据,但我不能说为什么,事实上我比较了两个字节[],一个在串行化之后与deserializzation之后的那个,但它们是相同的。
>
> 当我尝试使用方法*coldWallet.signTransaction(req)*签署上述事务时,输入未签名,并且在*区块*链上广播的事务将被丢弃。
>
> *为什么钱包不签署交易?* *这可能是由于数据丢失造成的吗?*当我尝试广播交易时,我宁愿这么认为,
> *peerGroup。broadcastTransaction(req.tx)*,那些数据被重新计算。
>
> *可能是因为我使用了交易的序列化/反序列化的错误方法?还有另一种实现它的方法吗?*
>
> 感谢你的支持。
>

-- 
You received this message because you are subscribed to the Google Groups 
"bitcoinj" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to bitcoinj+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to