signing using cold node reports wrong COMPLETE attribute

+1 vote

Ti MC team,

I'm doing a test with MC 2.0.2 as follow:

- Address_A makes a dvp proposal towards Address_B in one hot node.
- After creating the unsigned transaction, Address_A signs it offline using a cold node with parameter SINGLE|ANYONECANPAY
- The signing process is ok and the response from the cold-node states 
"complete": true

- Now Address_B receives the transaction and add the requested asset, creates the raw unsigned transaction in the hot node and signs it offline in cold-node

- the signature is fine but the cold node states
"complete": false

The cold and hot node have the same params.dat file and the cold node is provided with full details of UTXO, that is scriptPubkey and Redeem in order to sign without any connection to the network.

I'm sure the signature is fine because I can successfully send the signed transaction  in the network. Moreover If I sign it in the hot node I get exactly the same signature but the response states "complete": true.

Could you please explain me?

Thanks,

  Fabio

----------------------------------------------------------
Details below

transaction

signrawtransaction 01000000027b03b7f16d78a5f7b544ff077d0627272bddd90dd2813b98455c43d6b2399c8d00000000b400473044022038d684f29a1876ee9a16789d30134f52256fe406c02733cd60b96b223688537d02201f17c15df24f0626c030d03a7d645beae291e51bdca476aa12ddb190aa60d37b834c69512103a64866d5b54db792b4416b8b804a9d32abb3e1a329a5de8e2c6f75bb1954c1fe2103d02e81e2c4ab474133e6758b31f16c45a7e2c2e67cac68a8a764a195a6f4fba42102b7f08b968d2e77fd030d55ca089987e7529067c24f56a7d2ad36ff68857952c653aeffffffff67ddbc9722c393db00ae9660d6829c37e33b22ad7a0c8c901adca9d8a62f8bc00100000000ffffffff020000000000000000e0a9142b06e6bad9276986bd4362bc37e0c340e74d16f4870573706b6602754ca173706b647b6906726f775f6964695569046d657461536940646530346435386463356363633462393637316333363237666238643632366665346131353831306263316665336537323466656561373631393635666237316903646f63536940313665636162313837353739316532623665643063396136646165356131326137396439323132306531633361666264336139633835333563653434363636647d751c73706b712bddd90dd2813b98455c43d6b2399c8d0100000000000000750057a6160000000017a9142b06e6bad9276986bd4362bc37e0c340e74d16f48700000000 "[{\"txid\":\"c08b2fa6d8a9dc1a908c0c7aad223be3379c82d66096ae00db93c32297bcdd67\",\"vout\":1,\"scriptPubKey\":\"a9142b06e6bad9276986bd4362bc37e0c340e74d16f487\",\"redeemScript\":\"512102ac597f3662902130bc452378a76f39036021df9bb0172c350900586763713288210303dac8ea0daa1711bfeeb377abeb099b1f67e16926f706c1bde471d679165df42102b0e74cfeb618f6099bc4c740fda5db01ea9f2f9ad8a3458a4d3946dc5e582e8153ae\"}]"  "[\"L2joQKfmqvkKYjn3ungez5DKWyueqknaPEMYr7HwGg5GoyhKq2g9\"]" "ALL"

 

Result from cold-node
{

    "hex" : "0100000002dfe6f00dec3bfda21b9c7093abb42186077c6866a4136cb386e68fb55168e11700000000b400473044022074a3cba43894f86ef615130341050d625f1ac8ab4d2ec426fb708c6911bec0c3022057bd4492ff4d7d5c8b81bc72417972099cf852873b0a6e2132e826e3cc27f6b0834c69512103a64866d5b54db792b4416b8b804a9d32abb3e1a329a5de8e2c6f75bb1954c1fe2103d02e81e2c4ab474133e6758b31f16c45a7e2c2e67cac68a8a764a195a6f4fba42102b7f08b968d2e77fd030d55ca089987e7529067c24f56a7d2ad36ff68857952c653aeffffffff38d783804d493e087bbc1dba05ef55fdb4e3b77e6f9cbddc859c9508df99845500000000b40047304402201511b4bb50b2161826ab4ea36234d3bf9ab778cdfebfaa5cd2d08040fc5df61c022079fa19e976005240daaf030793f6c1e0e5c68e6b7a569f084cf95baefb7f0ffb014c69512102ac597f3662902130bc452378a76f39036021df9bb0172c350900586763713288210303dac8ea0daa1711bfeeb377abeb099b1f67e16926f706c1bde471d679165df42102b0e74cfeb618f6099bc4c740fda5db01ea9f2f9ad8a3458a4d3946dc5e582e8153aeffffffff010000000000000000e0a9142b06e6bad9276986bd4362bc37e0c340e74d16f4870573706b6602754ca173706b647b6906726f775f6964695069046d657461536940646530346435386463356363633462393637316333363237666238643632366665346131353831306263316665336537323466656561373631393635666237316903646f63536940313665636162313837353739316532623665643063396136646165356131326137396439323132306531633361666264336139633835333563653434363636647d751c73706b71077c6866a4136cb386e68fb55168e11701000000000000007500000000",
    "complete" : false

}

 

Result from hot node
{

    "hex" : "01000000027b03b7f16d78a5f7b544ff077d0627272bddd90dd2813b98455c43d6b2399c8d00000000b400473044022038d684f29a1876ee9a16789d30134f52256fe406c02733cd60b96b223688537d02201f17c15df24f0626c030d03a7d645beae291e51bdca476aa12ddb190aa60d37b834c69512103a64866d5b54db792b4416b8b804a9d32abb3e1a329a5de8e2c6f75bb1954c1fe2103d02e81e2c4ab474133e6758b31f16c45a7e2c2e67cac68a8a764a195a6f4fba42102b7f08b968d2e77fd030d55ca089987e7529067c24f56a7d2ad36ff68857952c653aeffffffff67ddbc9722c393db00ae9660d6829c37e33b22ad7a0c8c901adca9d8a62f8bc001000000b40047304402204f049d3216deb3c40d8125ebd464140032bd056647f9d6118a0262bb144aee3c0220452bcf369918c02716e0ac537dcd79cae6bbb9b603b51352bb9cabd6b4e31fac014c69512102ac597f3662902130bc452378a76f39036021df9bb0172c350900586763713288210303dac8ea0daa1711bfeeb377abeb099b1f67e16926f706c1bde471d679165df42102b0e74cfeb618f6099bc4c740fda5db01ea9f2f9ad8a3458a4d3946dc5e582e8153aeffffffff010000000000000000e0a9142b06e6bad9276986bd4362bc37e0c340e74d16f4870573706b6602754ca173706b647b6906726f775f6964695569046d657461536940646530346435386463356363633462393637316333363237666238643632366665346131353831306263316665336537323466656561373631393635666237316903646f63536940313665636162313837353739316532623665643063396136646165356131326137396439323132306531633361666264336139633835333563653434363636647d751c73706b712bddd90dd2813b98455c43d6b2399c8d01000000000000007500000000",
    "complete" : true
}

 

 

 

asked Aug 28, 2020 by fabio
Thanks - this may be a bug. It's been reported to the team and we'll get back to you shortly.

1 Answer

+1 vote
When using multichaind-cold for signing, you should specify (txid, vout, scriptPubKey) for all inputs, not only for those you are signing in specific call for signrawtransaction, i.e. B should add also information about input already signed by A.

Otherwise, multichain-cold cannot verify that the first input is properly signed by A and returns "complete":false.

As you mentioned, the signatures are fine, multichaind-cold just cannot report correct "complete" status.

It is normally not required for "hot" multichaind node, because it has information about all unspent inputs.
answered Aug 30, 2020 by Michael
Your hint is fine because the transaction I want to sign off line is the result of two transactions.

The first one is an offer signed with SINGLE flag
The second one is the result of appendrawtransaction call.

So I added both (txid, vout, scriptPubKey) coming from the first one and (txid, vout, scriptPubKey)
related to the second and now I am able to sign it in the cold node e get the right COMPLETE flag.

Thanks for your support.
  Fabio
...