nervosnetwork / fiber

19 stars 10 forks source link

[send_payment] Call send_payment twice at the same time cause Musig2VerifyError #245

Open gpBlockchain opened 1 week ago

gpBlockchain commented 1 week ago

Call send_payment twice at the same time cause Musig2VerifyError

  1. node2 call new_invoice get invoice1
  2. node2 call new_invoice get invoice2
  3. node1 call send_payment(invoice1) ,send_payment(invoice2) same time
  4. query list_channel balance in offered_tlc_balance and received_tlc_balance
    
    node1
    {"jsonrpc": "2.0", "result": {"channels": [{"channel_id": "0x126f8cba2a3a2ac172f807c2cc8a1dadf26b342b245ec3e63c08baf9d15db7a5", "peer_id": "QmTsV1CukMvkBk3mRVs7H971YNv2hHRT7HrdkabpUmEtq9", "funding_udt_type_script": {"code_hash": "0x73e5467341b55ffd7bdeb5b6f32aa0e9433baf6808f8c5f2472dbc36b1ab04f7", "hash_type": "type", "args": "0x32e555f3ff8e135cece1351a6a2971518392c1e30375c1e006ad0ce8eac07947"}, "state": {"state_name": "CHANNEL_READY", "state_flags": []}, "local_balance": "0x174876e800", "offered_tlc_balance": "0x2540be400", "remote_balance": "0x0", "received_tlc_balance": "0x0", "created_at": "0x624b86fcd2464"}]}, "id": 42}

node2 {"jsonrpc":"2.0","result":{"channels":[{"channel_id":"0x126f8cba2a3a2ac172f807c2cc8a1dadf26b342b245ec3e63c08baf9d15db7a5","peer_id":"QmQG1RUBdR7c7EDQwg2trrScyjPdxqHtfuMqciLK7F2VfF","funding_udt_type_script":{"code_hash":"0x73e5467341b55ffd7bdeb5b6f32aa0e9433baf6808f8c5f2472dbc36b1ab04f7","hash_type":"type","args":"0x32e555f3ff8e135cece1351a6a2971518392c1e30375c1e006ad0ce8eac07947"},"state":{"state_name":"CHANNEL_READY","state_flags":[]},"local_balance":"0x0","offered_tlc_balance":"0x0","remote_balance":"0x174876e800","received_tlc_balance":"0x2540be400","created_at":"0x624b86fcd4421"}]},"id":42}



[node1.log](https://github.com/user-attachments/files/17427926/node1.log)
[node2.log](https://github.com/user-attachments/files/17427929/node2.log)
logs contains Musig2VerifyError err
gpBlockchain commented 1 week ago

node1

  1. shutdown_channel("force":"true")
  2. close tx commit successuful
  3. exist error message

    
    2024-10-18T06:24:36.533213Z  WARN fnn::watchtower::actor: Found an old version commitment tx: Byte32(0xdf3e22096314c91e642c5255105d979ca6a0d336dea2382dac58c7798cf18dd5), revocation commitment number: 1, commitment number: 0
    at src/watchtower/actor.rs:203
    in ractor::actor::Actor with id: "0.3", name: "watchtower"
    
    2024-10-18T06:24:36.562474Z ERROR fnn::watchtower::actor: Failed to send revocation tx: TransactionView { data: Transaction(0x280300000c000000460200003a0200001c000000200000009300000097000000f3000000160200000000000003000000a611f41952574b8a200465b2281d17bc1196a878e31f206857ee3d20925d57950300000001a611f41952574b8a200465b2281d17bc1196a878e31f206857ee3d20925d579500000000018924295bde0c8224f3e7324729e70121d91bac34ca763b8fd283905feb75b9fa0a0000000000000000020000000000000000000000df3e22096314c91e642c5255105d979ca6a0d336dea2382dac58c7798cf18dd5000000000000000000000000f51ac16e1e683522295d62355145f0316b5f06c799d01bfdf31f71d4d792547f01000000230100000c000000c2000000b6000000100000001800000061000000d45bb1a806000000490000001000000030000000310000009bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce80114000000c8328aabcd9b9e8e64fbc566c4385c3bdeb219d75500000010000000300000003100000073e5467341b55ffd7bdeb5b6f32aa0e9433baf6808f8c5f2472dbc36b1ab04f7012000000032e555f3ff8e135cece1351a6a2971518392c1e30375c1e006ad0ce8eac0794761000000100000001800000061000000d4848caa5b6dc11b490000001000000030000000310000009bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce80114000000c8328aabcd9b9e8e64fbc566c4385c3bdeb219d7240000000c000000200000001000000000e8764817000000000000000000000000000000e20000000c000000890000007900000010000000100000001000000010000000ff0000000000000001590828d14839c561927e019caaa3312ae3863e87d5cd5fc63a27f89119bf072742db5985d7a97fa4b79dd59a2d794ff40e5c1b2780c9bb5a6d5f69e9a9e3087601f26cd9723684356c80e08e76517e89ef55242a0a4d43c628810e052ff64a41550000005500000010000000550000005500000041000000c263c48758c955736b1b18329c9b4d680ea0a72344ff16dca8dd08f377906240273337f889dd9112258b0ded25aa45817e631331324c918a2af74363dc6dbd7201), hash: Byte32(0xa9ecc3071e31cf2d1c1c5124ad09acf304291b70390be66a2b0057e101e6101b), witness_hash: Byte32(0x3b50c9b08695fc5cc924773237a9328d9501642355fd01bd042381081ed02073) }, error: Rpc(Error { code: ServerError(-302), message: "TransactionFailedToVerify: Verification failed Script(TransactionScriptError { source: Inputs[1].Lock, cause: ValidationFailure: see error code -31 on page https://nervosnetwork.github.io/ckb-script-error-codes/by-type-hash/9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8.html#-31 })", data: Some(String("Verification(Error { kind: Script, inner: TransactionScriptError { source: Inputs[1].Lock, cause: ValidationFailure: see error code -31 on page https://nervosnetwork.github.io/ckb-script-error-codes/by-type-hash/9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8.html#-31 }\n\nStack backtrace:\n   0: std::backtrace::Backtrace::capture\n   1: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from\n   2: ckb_tx_pool::util::verify_rtx::{{closure}}::{{closure}}\n   3: ckb_tx_pool::util::verify_rtx::{{closure}}\n   4: ckb_tx_pool::process::<impl ckb_tx_pool::service::TxPoolService>::_process_tx::{{closure}}\n   5: ckb_tx_pool::process::<impl ckb_tx_pool::service::TxPoolService>::process_tx::{{closure}}\n   6: ckb_tx_pool::service::process::{{closure}}\n   7: ckb_async_runtime::Handle::spawn::{{closure}}\n   8: tokio::runtime::task::raw::poll\n   9: tokio::runtime::scheduler::multi_thread::worker::Context::run_task\n  10: tokio::runtime::scheduler::multi_thread::worker::run\n  11: tokio::runtime::task::raw::poll\n  12: std::sys_common::backtrace::__rust_begin_short_backtrace\n  13: core::ops::function::FnOnce::call_once{{vtable.shim}}\n  14: std::sys::unix::thread::Thread::new::thread_start\n  15: __pthread_joiner_wake })")) })
    at src/watchtower/actor.rs:226
    in ractor::actor::Actor with id: "0.3", name: "watchtower"

[node.log](https://github.com/user-attachments/files/17429237/node.log)
contrun commented 2 days ago

Could be related to #283 , as the same error Musig2VerifyError happened