shohu / c0ban

c0ban source tree
MIT License
0 stars 0 forks source link

Test for Replay Attack #51

Closed shohu closed 6 years ago

shohu commented 6 years ago

Check block sync

Old Pool

c0band -server -regtest -listen -rpcallowip=0.0.0.0/0 -port=3883 -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 -connect=c0ban-15-ubuntu:3883 -daemon -debug

New Pool

c0band -server -regtest -listen -rpcallowip=0.0.0.0/0 -port=3883 -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 -connect=c0ban-15-old:3883 -daemon -debug

Old Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 101
[
  "770a6b31c762466549c1f7e1a51ab81cae95b1051489e016bedd899ea04a9505",
  :
  "5c2392b661a7164be91a268520d8d6e08ef665c8f3d2d3f724a1dfff441a1ea8"
]
c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getinfo
{
  "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
  "version": 150100,
  "protocolversion": 70015,
  "walletversion": 139900,
  "balance": 22000.00000000,
  "blocks": 101,
  "timeoffset": 0,
  "connections": 2,
  "proxy": "",
  "difficulty": 4.656542373906925e-10,
  "testnet": false,
  "keypoololdest": 1531200340,
  "keypoolsize": 1999,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}
c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent
[
  {
    "txid": "1fb9a63ba702e2395af4e1bfde820b65513f22e3151448201b6208b9ba21b131",
    "vout": 0,
    "address": "mxnYAPQyXj18kmKbEVY2QbhjeZ3tVmZPjX",
    "scriptPubKey": "210233e71ec0d3faf4e9f60d8c79b49493f41bcebbd3dd4f882e7e56cb53cfc940a2ac",
    "amount": 22000.00000000,
    "confirmations": 101,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

New Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getinfo
{
  "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
  "version": 150101,
  "protocolversion": 70015,
  "walletversion": 139900,
  "balance": 0.00000000,
  "blocks": 101,
  "timeoffset": 0,
  "connections": 2,
  "proxy": "",
  "difficulty": 4.656542373906925e-10,
  "testnet": false,
  "keypoololdest": 1531200362,
  "keypoolsize": 2000,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

👍

shohu commented 6 years ago

Check send tx before separate chain

From old to new

Old Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getaddressesbyaccount ""
[
  "mwrZaXctUdE4UMQxV1YS6sR5QjWjxLPdaV"
]

New Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getaddressesbyaccount ""
[
  "n2yhtm6NgCUCwiq1ih3wC15ASvtvXwcvVv"
]

Old Pool

# c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 sendtoaddress n17Bq1vhB31hJyjwy2MU94jNTkedFkksoM 100
4a5a0262fc09384987fa07148f4fc2d3dc949d59bb793166aeeeb5d03ba50df4

New Pool

Can't accept transaction

2018-07-10 06:11:54 received: inv (37 bytes) peer=0
2018-07-10 06:11:54 got inv: tx 4a5a0262fc09384987fa07148f4fc2d3dc949d59bb793166aeeeb5d03ba50df4  new peer=0
2018-07-10 06:11:54 askfor witness-tx 4a5a0262fc09384987fa07148f4fc2d3dc949d59bb793166aeeeb5d03ba50df4  0 (00:00:00) peer=0
2018-07-10 06:11:54 Requesting witness-tx 4a5a0262fc09384987fa07148f4fc2d3dc949d59bb793166aeeeb5d03ba50df4 peer=0
2018-07-10 06:11:54 sending getdata (37 bytes) peer=0
2018-07-10 06:11:54 received: tx (192 bytes) peer=0
2018-07-10 06:11:54 4a5a0262fc09384987fa07148f4fc2d3dc949d59bb793166aeeeb5d03ba50df4 from peer=0 was not accepted: mandatory-script-verify-flag-failed (Signature must use SIGHASH_FORKID) (code 16)
2018-07-10 06:11:54 sending reject (108 bytes) peer=0
2018-07-10 06:11:54 Misbehaving: 172.20.0.3:48722 peer=0 (0 -> 100) BAN THRESHOLD EXCEEDED

Old Pool

# c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 1
[
  "3aeaf83710ad43976f1b0489b3b1bb1137dbfc53cbbad2b99281bc37a052a677"
]
# c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent
[
  {
    "txid": "0ad6b6d966693197f34e5bf9fd3d9206a118b042e050348b1408c461b1655081",
    "vout": 0,
    "address": "n2trTCjc9uY527T5bdvaKdRZ59mmyALuMN",
    "scriptPubKey": "2102b23114ea2b94054451295693cc78a5ebb1608ee193d4a748fffbcce99bc7c47aac",
    "amount": 22000.00000000,
    "confirmations": 101,
    "spendable": true,
    "solvable": true,
    "safe": true
  },
  {
    "txid": "4a5a0262fc09384987fa07148f4fc2d3dc949d59bb793166aeeeb5d03ba50df4",
    "vout": 1,
    "address": "n2pB5qv4CxqeF6577USQQ7U1giCE4LhJCW",
    "scriptPubKey": "76a914e99c639136600212476c2098d4f144172201097c88ac",
    "amount": 21899.99996160,
    "confirmations": 1,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

New Pool

It's ok. Because after generate block(sync block), add to wallet.

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent[
  {
    "txid": "4a5a0262fc09384987fa07148f4fc2d3dc949d59bb793166aeeeb5d03ba50df4",
    "vout": 0,
    "address": "n17Bq1vhB31hJyjwy2MU94jNTkedFkksoM",
    "account": "",
    "scriptPubKey": "76a914d6e3d47fb7f69f66e5600c5458b29bd04600ac6088ac",
    "amount": 100.00000000,
    "confirmations": 1,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

From new to old

New Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 sendtoaddress mwrZaXctUdE4UMQxV1YS6sR5QjWjxLPdaV 10
03cd63cc2dbed8ef3270923b388c35fd4ba2ccb97cedda3e6a830a72881c9e03

Old Pool

2018-07-10 07:38:20 received: inv (37 bytes) peer=3
2018-07-10 07:38:20 got inv: tx 03cd63cc2dbed8ef3270923b388c35fd4ba2ccb97cedda3e6a830a72881c9e03  new peer=3
2018-07-10 07:38:20 askfor witness-tx 03cd63cc2dbed8ef3270923b388c35fd4ba2ccb97cedda3e6a830a72881c9e03  0 (00:00:00) peer=3
2018-07-10 07:38:20 Requesting witness-tx 03cd63cc2dbed8ef3270923b388c35fd4ba2ccb97cedda3e6a830a72881c9e03 peer=3
2018-07-10 07:38:20 sending getdata (37 bytes) peer=3
2018-07-10 07:38:20 received: tx (226 bytes) peer=3
2018-07-10 07:38:20 03cd63cc2dbed8ef3270923b388c35fd4ba2ccb97cedda3e6a830a72881c9e03 from peer=3 was not accepted: non-mandatory-script-verify-flag (Signature hash type missing or not understood) (code 64)
2018-07-10 07:38:20 sending reject (117 bytes) peer=3
2018-07-10 07:38:22 Flushing wallet.dat
2018-07-10 07:38:22 Flushed wallet.dat 13ms
2018-07-10 07:38:25 trying connection c0ban-15-ubuntu:3883 lastseen=0.0hrs
2018-07-10 07:38:25 Added connection peer=943
2018-07-10 07:38:25 sending version (102 bytes) peer=943

New Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 1
[
  "540a71feb8f123ed8aa5149a8662d70bbec03e9756276b73f5ca4cb219d4d0b0"
]
c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent
[
  {
    "txid": "03cd63cc2dbed8ef3270923b388c35fd4ba2ccb97cedda3e6a830a72881c9e03",
    "vout": 1,
    "address": "mxB9irfWBGVsjLBZTYXBgCwMhHzCHuu59g",
    "scriptPubKey": "76a914b6bb5bc02de60dbaf22e7e3e62ac10b8fec483e088ac",
    "amount": 89.99995480,
    "confirmations": 1,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

Old Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent 1 999999 '["mwrZaXctUdE4UMQxV1YS6sR5QjWjxLPdaV"]'
[
]

It's OK. not accept transaction.

shohu commented 6 years ago

Check send tx before separate chain

From old to new

Old Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 95

New Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 10
[
  "8fc393ed6576d9bdf9e91c7fd0b9b8c64cccd6963c7cfbf82855ae511bbb186d",
  "1f3941be0ab7573a14d34cd552f77f153de5da1e8ca52ac0a10eced96e55531e",
  "cc3505b6eaed73962758b2bb0a16028264e99f1043b07b33173752f0e3c6286a",
  "10c16b9c945c01750a6a6f5a62b2845d3202030642c8aa3bc355dd1fae0d7dd3",
  "b5b23fb3cc5cbccf2bc710ea3a3bc1b04c504eeb9108acb23db8dc95ca9bf8fc",
  "72c373da0d2ed7ff3a0e49850fc83f8a89442fc2272495b38a1034a82eb79a8b",
  "44a0f768a15e4e5ffce9d13a00bc3b0f82d74c681b3fbfc605e770f7c9b56046",
  "f41051691f629ff2138d9c5ac3bc6cf7a44adea8bcf705780ecd557dddc6fec9",
  "976ffbf99e58fa06f0be01b2be348f9f6133f64d28bc9ca950b641c5aa2980cd",
  "fba15a3e9be2768b87cdb4c7be39f933017ac123d1162d5bdf4598494557c408"
]
c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getinfo
{
  "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
  "version": 150101,
  "protocolversion": 70015,
  "walletversion": 139900,
  "balance": 154118.00000000,
  "blocks": 210,
  "timeoffset": 0,
  "connections": 0,
  "proxy": "",
  "difficulty": 1,
  "testnet": false,
  "keypoololdest": 1531202966,
  "keypoolsize": 1999,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

Old Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 5
[
  "668f65325ea6214a5f6cd0b77a2da960d7f8731e636a434f350be3872e4ba929",
  "6b88996ab01877b2b1cea35d9683393777f0609c603b74b84febb068ae12cbba",
  "2f2bdbccdd5d1cc3af915f4607cf86da4f0d88fd4a840a6cf92bdf9497197907",
  "7e584f6cc595b4c4dda604f4fe6c49c9dc6686982ac1e2b978b93c668542c303",
  "1a75210975e609cd6562256225077749cd357e0b0d593f53aaec99a9cc305a45"
]
c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getinfo
{
  "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
  "version": 150100,
  "protocolversion": 70015,
  "walletversion": 139900,
  "balance": 2265867.00000000,
  "blocks": 205,
  "timeoffset": 0,
  "connections": 0,
  "proxy": "",
  "difficulty": 4.656542373906925e-10,
  "testnet": false,
  "keypoololdest": 1531202971,
  "keypoolsize": 1999,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

New Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent 1 999999 '["n17Bq1vhB31hJyjwy2MU94jNTkedFkksoM"]'
[
]

Old Pool

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 sendtoaddress n17Bq1vhB31hJyjwy2MU94jNTkedFkksoM 25

New Pool

I got success. Nothing listunspent data 👍

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 1
[
  "247940926b6593d0883151ce2c43480fbed5395cc9569ee9ef03a49acc682924"
]
c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent 1 999999 '["n17Bq1vhB31hJyjwy2MU94jNTkedFkksoM"]'
[
]
shohu commented 6 years ago

Check send tx before separate chain

lyra2rev2-c0band in old pool

/block/bin/c0band-lyra2rev2 -server -regtest -listen -datadir=/block -rpcallowip=0.0.0.0/0 -port=3883 -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 -connect=c0ban-15-ubuntu:3883 -daemon -debug
/block/bin/c0ban-cli-lyra2rev2 -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getinfo
{
  "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
  "version": 150101,
  "protocolversion": 70015,
  "walletversion": 139900,
  "balance": 0.00000000,
  "blocks": 211,
  "timeoffset": 0,
  "connections": 1,
  "proxy": "",
  "difficulty": 1,
  "testnet": false,
  "keypoololdest": 1531212613,
  "keypoolsize": 2000,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}
/block/bin/c0ban-cli-lyra2rev2 -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 getnewaddress testA
mjhahhB1uL61gmkuUBkZi3UGKbafkTcYDH

New Pool

# c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 sendtoaddress mjhahhB1uL61gmkuUBkZi3UGKbafkTcYDH 8
error code: -4
error message:
Signing transaction failed

debug.log

2018-07-10 08:54:51 ThreadRPCServer method=sendtoaddress
2018-07-10 08:54:51 keypool reserve 1003
2018-07-10 08:54:51 FeeEst: 27 >60% decay 0.99520: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 1.2/(1.2 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 12 >60% decay 0.96200: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 0.0/(0.0 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 54 >85% decay 0.99931: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 1.9/(1.9 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 48 >85% decay 0.99520: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 1.2/(1.2 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 12 >85% decay 0.96200: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 0.0/(0.0 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 108 >95% decay 0.99931: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 1.9/(1.9 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 48 >95% decay 0.99520: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 1.2/(1.2 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 12 >95% decay 0.96200: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 0.0/(0.0 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 3 >60% decay 0.96200: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 0.0/(0.0 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 6 >85% decay 0.96200: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 0.0/(0.0 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 12 >95% decay 0.96200: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 0.0/(0.0 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 12 >95% decay 0.99520: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 1.2/(1.2 0 mem 0.0 out)
2018-07-10 08:54:51 FeeEst: 12 >95% decay 0.99931: feerate: -1 from (-1 - -1) -nan% 0.0/(0.0 0 mem 0.0 out) Fail: (0 - 1e+99) 100.00% 1.9/(1.9 0 mem 0.0 out)
2018-07-10 08:54:51 keypool return 1003
shohu commented 6 years ago

Check sendrawtransaction

New Pool

listunspent

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent
[
  {
    "txid": "974d94ea71ffcab472a061dfd44cbce0dc7a4b66c7c4529969b50bad4e992cec",
    "vout": 0,
    "address": "mk3fCV21tFdcn15bkZbufmX1ZFzSLSv3QM",
    "scriptPubKey": "2102acc29de0198fa584fcd257a26099c3b011679efe945b99766d565adad7426ddeac",
    "amount": 22000.00000000,
    "confirmations": 107,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

createrawtransaction

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 createrawtransaction '[{"txid":"974d94ea71ffcab472a061dfd44cbce0dc7a4b66c7c4529969b50bad4e992cec","vout":0}]' '{"mjhahhB1uL61gmkuUBkZi3UGKbafkTcYDH":21999.99950000}'
0200000001ec2c994ead0bb5699952c4c7664b7adce0bc4cd4df61a072b4caff71ea944d970000000000ffffffff01b02c373a000200001976a9142de30de4750ea156a575c0e95263657862fcf04d88ac00000000

signrawtransaction

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 signrawtransaction 0200000001ec2c994ead0bb5699952c4c7664b7adce0bc4cd4df61a072b4caff71ea944d970000000000ffffffff01b02c373a000200001976a9142de30de4750ea156a575c0e95263657862fcf04d88ac00000000
{
  "hex": "0200000001ec2c994ead0bb5699952c4c7664b7adce0bc4cd4df61a072b4caff71ea944d970000000048473044022069f7fb337b39686eaad4039519d57179b931f2a39b83d1ce47bed68bc35931fa022017d6138fd8d36d174a4dd30ac928200cdd2a170b5c9af1e79e2c6fbf041be60541ffffffff01b02c373a000200001976a9142de30de4750ea156a575c0e95263657862fcf04d88ac00000000",
  "complete": true
}

sendrawtransaction

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 sendrawtransaction 0200000001ec2c994ead0bb5699952c4c7664b7adce0bc4cd4df61a072b4caff71ea944d970000000048473044022069f7fb337b39686eaad4039519d57179b931f2a39b83d1ce47bed68bc35931fa022017d6138fd8d36d174a4dd30ac928200cdd2a170b5c9af1e79e2c6fbf041be60541ffffffff01b02c373a000200001976a9142de30de4750ea156a575c0e95263657862fcf04d88ac00000000
228d9a87eb0efc2f27fe66cae93134ec4943a8df6d01a026e08063daed779804

Old Pool

generate

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 generate 1
[
  "d4aba01fd7a13809e14ff954d23f955553d457fda8fc61b349737b354c257e0f"
]

listunspent

c0ban-cli -rpcuser=c0ban -rpcpassword=c0ban -rpcport=3882 listunspent 1 999999 '["mjhahhB1uL61gmkuUBkZi3UGKbafkTcYDH"]'
[
  {
    "txid": "228d9a87eb0efc2f27fe66cae93134ec4943a8df6d01a026e08063daed779804",
    "vout": 0,
    "address": "mjhahhB1uL61gmkuUBkZi3UGKbafkTcYDH",
    "account": "testA",
    "scriptPubKey": "76a9142de30de4750ea156a575c0e95263657862fcf04d88ac",
    "amount": 21999.99950000,
    "confirmations": 1,
    "spendable": true,
    "solvable": true,
    "safe": true
  }
]

👍

shohu commented 6 years ago

https://github.com/shohu/c0ban/commit/fe7612698cb07144747ad4bc3a7da16c76a9a5a8