Closed TimDaub closed 7 years ago
It seems that the transaction was doublespent in block bf8eac239223d09c9a1126c3f69749bb9ae1c43e465252e614a0a99baeeb2a98
and that block has no votes....
Some data
Output upon the POST /transactions/
bdb-server_1 | bigchaindb.pipelines.block INFO Process-12 Write new block bf8eac239223d09c9a1126c3f6974
9bb9ae1c43e465252e614a0a99baeeb2a98 with 2 transactions
bdb-server_1 | Process Process-22:
bdb-server_1 | Traceback (most recent call last):
bdb-server_1 | File "/usr/local/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
bdb-server_1 | self.run()
bdb-server_1 | File "/usr/local/lib/python3.5/multiprocessing/process.py", line 93, in run
bdb-server_1 | self._target(*self._args, **self._kwargs)
bdb-server_1 | File "/usr/local/lib/python3.5/site-packages/multipipes/pipeline.py", line 67, in safe_run
_forever
bdb-server_1 | self.run_forever()
bdb-server_1 | File "/usr/local/lib/python3.5/site-packages/multipipes/pipeline.py", line 74, in run_fore
ver
bdb-server_1 | self.run()
bdb-server_1 | File "/usr/local/lib/python3.5/site-packages/multipipes/pipeline.py", line 106, in run
bdb-server_1 | result = self.target(*args)
bdb-server_1 | File "/usr/src/app/bigchaindb/pipelines/vote.py", line 108, in validate_tx
bdb-server_1 | tx.validate(self.bigchain)
bdb-server_1 | File "/usr/src/app/bigchaindb/models.py", line 47, in validate
bdb-server_1 | spent = bigchain.get_spent(input_txid, input_.fulfills.output)
bdb-server_1 | File "/usr/src/app/bigchaindb/core.py", line 352, in get_spent
bdb-server_1 | ' with the chain'.format(txid))
bdb-server_1 | bigchaindb.exceptions.CriticalDoubleSpend: `6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7
bc85db8b99a33140` was spent more than once. There is a problem with the chain
No vote was created for that block:
GET http://localhost:49984/api/v1/votes?block_id=bf8eac239223d09c9a1126c3f69749bb9ae1c43e465252e614a0a99baeeb2a98
[]
So I have a feeling that the voter failed upon that error...
http://localhost:49984/api/v1/outputs?public_key=AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin&unspent=true
1 node cluster
{
"keyring": [],
"public_key": "GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4",
"software": "BigchainDB",
"version": "0.10.0.dev"
}
bigchain.bigchain
[{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620887","transactions":[{"asset":{"id":"3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"},"id":"efd3f7464e649defc7f13e42eafdeea9621d9a4a5ac45c3468e309f5ee683c15","inputs":[{"fulfillment":"cf:4:kOHgXLKCEdaS7oy71KDKTZJ-vaW8vT2sQumtv8edrmMP7Qv69ghDKTIyQt70NejgSGJUCPqrhaDcbBKpBx6Sd1mZRhyIl26oURSOaUQkHDFnLLjMvwR38uTot9d2qbAE","fulfills":{"output":0,"txid":"6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7bc85db8b99a33140"},"owners_before":["AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"]}],"metadata":{"message":"fd"},"operation":"TRANSFER","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:kOHgXLKCEdaS7oy71KDKTZJ-vaW8vT2sQumtv8edrmM:96"},"public_keys":["AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"]}],"version":"0.9"},{"asset":{"id":"3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"},"id":"135bf52f20810e9c61e1f7808eb13cd7faa8c4e5c4a0e8eb97c61877a27fbfeb","inputs":[{"fulfillment":"cf:4:kOHgXLKCEdaS7oy71KDKTZJ-vaW8vT2sQumtv8edrmMHY3sM02RwlfIRFC71n-PnHZMyg0ZDsW6XC3QmWhTa4j9CLuzAZkmgy6wBKCmA7exW2HfKrLoH_gWSva5cO-0O","fulfills":{"output":0,"txid":"6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7bc85db8b99a33140"},"owners_before":["AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"]}],"metadata":{"message":"fds"},"operation":"TRANSFER","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:kOHgXLKCEdaS7oy71KDKTZJ-vaW8vT2sQumtv8edrmM:96"},"public_keys":["AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"bf8eac239223d09c9a1126c3f69749bb9ae1c43e465252e614a0a99baeeb2a98","signature":"yV8gy6fCoAGcUfjDF8YgVvVJiR1eUWdu4cgmFr6eUh8uhe2hGaacAcwmGCtbaLjhHL2Pmg62Fj27crEEYdKmsn7"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620461","transactions":[{"asset":{"id":"3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"},"id":"6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7bc85db8b99a33140","inputs":[{"fulfillment":"cf:4:Nv2PPvWa8H7IKemuuBxqt_ZZiC5xQzLICTYqd9eioTdi-OJQYfuWjD7xBs7oNTfLakBJnE5zNduNbzp651qDBpbvg3nd6gZLgEAJoDwjELgzWLW_tJuk3WJ3Oo6Vl2cA","fulfills":{"output":0,"txid":"6ad0a817aa0c2926572d00b5000276393c9ec098ca3795e2a58b18535f401a1a"},"owners_before":["4hfGNaQAZkwBk4maYxeAYUcuBDjkb9euQTGCi1d8QdhG"]}],"metadata":{"message":"a new transaction to @bruce"},"operation":"TRANSFER","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:kOHgXLKCEdaS7oy71KDKTZJ-vaW8vT2sQumtv8edrmM:96"},"public_keys":["AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"af54f4a4b5483e1cee27b0670de2d9023ee5ae1c944a6c0ba398006b3369b234","signature":"5jN8163C7YjQKBaG4dxaDxEQhtthqNvk2mwuX2AUiDc83VBUygqJuhttdiWnXhfmS4UAS4ZEQRyeLZzDWvqEowMh"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620173","transactions":[{"asset":{"data":{"frequency":2,"timestamp":"1490620171475"}},"id":"30ded103981f2a85ed6c80d2e8af9b9e53c3784c8c06581ed28a42f6683497cf","inputs":[{"fulfillment":"cf:4:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGiH15Trs7gdKV09k3dEVfsVdlNL6lyrgHYE7xrvAoWRfNWx_fv8cF3o0GX46QF5pyWAjDEi4bO3VPjgAyzIop8P","fulfills":null,"owners_before":["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}],"metadata":null,"operation":"CREATE","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGg:96"},"public_keys":["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"40aa5fc77279cf51f31e77f8dd679ff07707e1c348a33bdfd35d912ade42cbe5","signature":"3JEWR8fw8vkZwwqiJnXCN1TeQnTJfs74WiMZvY6bdKNHnfBr4unkMf2t6VKbNXNeHnCAH54Tafbt9sGYLuLcF8C"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620921","transactions":[{"asset":{"data":{"definition":"test"}},"id":"1c539a8f168966d8a2d063e9f4162758a8cfceee5c8daa569d3e9c30b68c9ed3","inputs":[{"fulfillment":"cf:4:W0dEBH4MFkphXyUzeuY04q8z2visobk5dtiggDfGdOf82iCDrB0UoZhL6gqjqaPol_7ISOU7XV5ldhme-xAFiiqk5W-k-bFZEM6o0TTBeCuJhfYcVF-HrDmj9S6oXYgG","fulfills":null,"owners_before":["79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG"]}],"metadata":null,"operation":"CREATE","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:W0dEBH4MFkphXyUzeuY04q8z2visobk5dtiggDfGdOc:96"},"public_keys":["79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"702909a5fbfcb08dfd617201f97f8dddae8158e1a0435cf4d23531cf99c27c5f","signature":"y4HSd7jbzYvxjDsXZUAB6HcpFJ23FZo23PqkmRZebAVHeozBuiM5rkr4QHj3YMPugH2UWT3GndpQSH9W9WYmUtx"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490618322","transactions":[{"asset":{"data":null},"id":"513c90fe462bfa61ad54f31b1080831b4edcd4aa994e6a07ac439ea0ef2798a0","inputs":[{"fulfillment":"cf:4:5k4Kk05495kBTCCaa0UCa1n0KHP55st17og8wXzC2KlHzVsLKimybkfX3sg-ENyQpd34qN0wRerdYE36EtiN_c-bwAXleFx5ksBOJQyCtO9pCSWfBQrqaYgcb7maDs4E","fulfills":null,"owners_before":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]}],"metadata":{"message":"Hello World from the BigchainDB"},"operation":"GENESIS","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:5k4Kk05495kBTCCaa0UCa1n0KHP55st17og8wXzC2Kk:96"},"public_keys":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]}],"version":"0.10"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"6679eda035aa457dfa2ad4fda07dfd36b3977966980e79ecb11c51c1008082ef","signature":"3ZqYtSy9UuM42fZnxYUmhe6g9YxqwCnTkBoXeRduE6ZpBNRUvMMLNh8BifndEe9VZwH2cbAvVXkp3LqrA6wJ6KUF"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620084","transactions":[{"asset":{"id":"3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"},"id":"6ad0a817aa0c2926572d00b5000276393c9ec098ca3795e2a58b18535f401a1a","inputs":[{"fulfillment":"cf:4:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGiJYkx9UaihwdLCLbtdzfIhL3CNrBo95lGwNWNzcqwb7qO1rvFw2NlHYYq-kwNCOW8H9mbBBiYFLAANpYhnXAAO","fulfills":{"output":0,"txid":"3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"},"owners_before":["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}],"metadata":{"message":"send to @dimi"},"operation":"TRANSFER","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"4hfGNaQAZkwBk4maYxeAYUcuBDjkb9euQTGCi1d8QdhG","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:Nv2PPvWa8H7IKemuuBxqt_ZZiC5xQzLICTYqd9eioTc:96"},"public_keys":["4hfGNaQAZkwBk4maYxeAYUcuBDjkb9euQTGCi1d8QdhG"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"9e74b55d7efd48c63654347531ebac9c57dfd72d5f434ea373d5ea8ca1ed4ed7","signature":"wZ6hG91YfxaZQGPvGP2fgUcsJ6jmkRDw8awxpjZTkoUiGpyeNsWSEKp4GSQWU99TzVEsuvEu1k1TLTgSeVXxSDM"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620006","transactions":[{"asset":{"data":{"definition":"Hi Lemonade"}},"id":"3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73","inputs":[{"fulfillment":"cf:4:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGjkNEOAMGZ_QIhzFgx69A-s6WbHrVMrnrqtSVyWFiQqdd9ndv5SsmvjQLEtsZBiiroxIMfBV8-gAym9ZTdzIIgO","fulfills":null,"owners_before":["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}],"metadata":null,"operation":"CREATE","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGg:96"},"public_keys":["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"c1055a4b0fdaf9cf4cd768cff2424afd2bdc8a7d77fded78d2389ebc43d06516","signature":"25Jw7xZGXkKsEzSgpyWrMiiFVto76poYsvdyrhrf8orjp1NhCnqnb7eh8WkPcGQjXQ5Pa5BhEmVGKqW58VoG34Tt"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620932","transactions":[{"asset":{"id":"1c539a8f168966d8a2d063e9f4162758a8cfceee5c8daa569d3e9c30b68c9ed3"},"id":"9727d0669ab8328baa433bff475690a5c7015d7ae7158726b97cdd3777a806f7","inputs":[{"fulfillment":"cf:4:W0dEBH4MFkphXyUzeuY04q8z2visobk5dtiggDfGdOe3S-4fgrf70bHefF6lf2OA861DQW_BpXnj3471BsTnMBbjf7GYdy6s0GezYEhGFhCHQDgh2bjk79eHhTMsEKgE","fulfills":{"output":0,"txid":"2b7c3ad9078c87e591e6d8e071cc4b64f37fbcdc59c032a084c99e81de639f93"},"owners_before":["79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG"]}],"metadata":{"message":"fdfsdfdsf"},"operation":"TRANSFER","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:W0dEBH4MFkphXyUzeuY04q8z2visobk5dtiggDfGdOc:96"},"public_keys":["79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"fd07ad4ce3826d5653fbda67f15ce1dd127829bb8d0d03f36a4b5cad9c4c8012","signature":"58fHJwWoKSJknKmpqZhQFKeecCxDxJJoXZM7fHyBcvW9GCdrziPbhAGSvG1XCMgu3duiC83DFTHJjK23h4yS9Hvo"},{"block":{"node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","timestamp":"1490620925","transactions":[{"asset":{"id":"1c539a8f168966d8a2d063e9f4162758a8cfceee5c8daa569d3e9c30b68c9ed3"},"id":"2b7c3ad9078c87e591e6d8e071cc4b64f37fbcdc59c032a084c99e81de639f93","inputs":[{"fulfillment":"cf:4:W0dEBH4MFkphXyUzeuY04q8z2visobk5dtiggDfGdOcnVT9_aoEcJM1OomXFCthHPhEP-A9FUxiikF8jmutChyOOfGHdZcte4nHPH_5VY0fOrTykgpuOzJA53h1ovUUF","fulfills":{"output":0,"txid":"1c539a8f168966d8a2d063e9f4162758a8cfceee5c8daa569d3e9c30b68c9ed3"},"owners_before":["79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG"]}],"metadata":{"message":"hi"},"operation":"TRANSFER","outputs":[{"amount":1,"condition":{"details":{"bitmask":32,"public_key":"79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG","signature":null,"type":"fulfillment","type_id":4},"uri":"cc:4:20:W0dEBH4MFkphXyUzeuY04q8z2visobk5dtiggDfGdOc:96"},"public_keys":["79K8SPZbeSDYXBrWgt3dsNmYTZbKNtdYQ5XrjA9XEWfG"]}],"version":"0.9"}],"voters":["GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4"]},"id":"d1a1fdda8497799dcc37d95bebbc7e8773979c174b6c5974fe74b645ac0ec522","signature":"5aEuBydrUbXR2QfFrEwRa6hYjfGq9X4ovK2pNvpR2qSchkPW5yL48UmtWmW6ErMXVuWvZuQy9ShaXov3a8mUEgPY"}]
bigchain.votes
[{"id":"0529a5df-7920-42ea-9914-7b1484ecdb34","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"3MDaGP5i4PBnkFjx84KfGrhqiCLBUr61FoLm23RC8g9dkRe1vYFKWMib26NiLwQV4xtssR79qsc1u5SCoY2wM6eR","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"fd07ad4ce3826d5653fbda67f15ce1dd127829bb8d0d03f36a4b5cad9c4c8012","timestamp":"1490623066","voting_for_block":"4a2d9de1c42b1d0b866de4d75b42d12d11d51f9dacaa20af38f205847eb92ab0"}},{"id":"395062d5-61cc-4764-bd60-5849bdae140e","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"iACMkcxZe9wt3Pd2wK4RV7DSm1Pr4UDPwNBW4iXJpjux238aigXbuyoLtMSBo7ZHTrQ5iQNS9uZnkstQQnJpFnG","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"9e74b55d7efd48c63654347531ebac9c57dfd72d5f434ea373d5ea8ca1ed4ed7","timestamp":"1490620173","voting_for_block":"40aa5fc77279cf51f31e77f8dd679ff07707e1c348a33bdfd35d912ade42cbe5"}},{"id":"84ce57ce-f362-4efd-865b-6ce47daf1863","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"5x7dz8Yzz22RB2G8otbJve2GwQQoeb5i2zX523PJrubg8YdT6gpL3Ra5LRaHvuYMDhfPCgDh5GravcergQCtiTS3","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"702909a5fbfcb08dfd617201f97f8dddae8158e1a0435cf4d23531cf99c27c5f","timestamp":"1490620926","voting_for_block":"d1a1fdda8497799dcc37d95bebbc7e8773979c174b6c5974fe74b645ac0ec522"}},{"id":"c9796d12-7cec-42c3-b20d-c46d0ecb6ba7","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"5Sscqr1MEemcRhroxk9nsGzEvhBhB1qh97LBCT17QbxCsi9JMK7MYRtCoU2EA2AS4qAcXSFNXyZPPk2ZeebP3vbw","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"af54f4a4b5483e1cee27b0670de2d9023ee5ae1c944a6c0ba398006b3369b234","timestamp":"1490620921","voting_for_block":"702909a5fbfcb08dfd617201f97f8dddae8158e1a0435cf4d23531cf99c27c5f"}},{"id":"5c8b98bb-97a3-4e52-afa6-5c9649ed2e58","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"39NBCsdM3LLm6pGW25hWuxKrb64syCZBZf8yGEEv32g41sfK65SszLU8rFf5pT1Nvh81ZF6TdMRuM2WGxFZkuH5Q","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"6679eda035aa457dfa2ad4fda07dfd36b3977966980e79ecb11c51c1008082ef","timestamp":"1490620006","voting_for_block":"c1055a4b0fdaf9cf4cd768cff2424afd2bdc8a7d77fded78d2389ebc43d06516"}},{"id":"b1686823-f9a4-4f46-b51a-46d6f398532b","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"2en9W6vSxgNuLHUu49smmjsLC3LumH3s2tsog1zttihdKZgQ2kHdsyFqYo1FNTNh7mVC96VeS3zEBs7ra4adhALH","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"c1055a4b0fdaf9cf4cd768cff2424afd2bdc8a7d77fded78d2389ebc43d06516","timestamp":"1490620085","voting_for_block":"9e74b55d7efd48c63654347531ebac9c57dfd72d5f434ea373d5ea8ca1ed4ed7"}},{"id":"be49f651-f092-44a0-86f4-d98f8aee86b3","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"H3vKAny1ghsJnficgSRSrKEZnP44CDWqDnavbef4H24mrzgkEMMqYQ8hiv1fp87LnNyJcU48D2TjVjupckXF5QM","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"d1a1fdda8497799dcc37d95bebbc7e8773979c174b6c5974fe74b645ac0ec522","timestamp":"1490620932","voting_for_block":"fd07ad4ce3826d5653fbda67f15ce1dd127829bb8d0d03f36a4b5cad9c4c8012"}},{"id":"c2bdc5b7-9fc0-489c-94d1-7b8824e6d94c","node_pubkey":"GW1nrdZm4mbVC8ePeiGWz6DqHexqewqy5teURVHi3RG4","signature":"3cWVd4imhtgVXv6Tw9PVzyYCiyLR8LZRkbtUJLmr3tGX77pm1DAXHCHzG7hmVbXgVkAu8u2wNBYqwbcPo6WZJ57P","vote":{"invalid_reason":null,"is_block_valid":true,"previous_block":"40aa5fc77279cf51f31e77f8dd679ff07707e1c348a33bdfd35d912ade42cbe5","timestamp":"1490620462","voting_for_block":"af54f4a4b5483e1cee27b0670de2d9023ee5ae1c944a6c0ba398006b3369b234"}}]
Querying the asset works:
http://localhost:49984/api/v1/transactions?asset_id=3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73
[{"outputs": [{"amount": 1, "condition": {"details": {"bitmask": 32, "type": "fulfillment", "type_id": 4, "signature": null, "public_key": "4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"}, "uri": "cc:4:20:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGg:96"}, "public_keys": ["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}], "metadata": null, "version": "0.9", "inputs": [{"fulfillment": "cf:4:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGjkNEOAMGZ_QIhzFgx69A-s6WbHrVMrnrqtSVyWFiQqdd9ndv5SsmvjQLEtsZBiiroxIMfBV8-gAym9ZTdzIIgO", "fulfills": null, "owners_before": ["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}], "id": "3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73", "asset": {"data": {"definition": "Hi Lemonade"}}, "operation": "CREATE"}, {"outputs": [{"amount": 1, "condition": {"details": {"bitmask": 32, "type": "fulfillment", "type_id": 4, "signature": null, "public_key": "AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"}, "uri": "cc:4:20:kOHgXLKCEdaS7oy71KDKTZJ-vaW8vT2sQumtv8edrmM:96"}, "public_keys": ["AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"]}], "metadata": {"message": "a new transaction to @bruce"}, "version": "0.9", "inputs": [{"fulfillment": "cf:4:Nv2PPvWa8H7IKemuuBxqt_ZZiC5xQzLICTYqd9eioTdi-OJQYfuWjD7xBs7oNTfLakBJnE5zNduNbzp651qDBpbvg3nd6gZLgEAJoDwjELgzWLW_tJuk3WJ3Oo6Vl2cA", "fulfills": {"txid": "6ad0a817aa0c2926572d00b5000276393c9ec098ca3795e2a58b18535f401a1a", "output": 0}, "owners_before": ["4hfGNaQAZkwBk4maYxeAYUcuBDjkb9euQTGCi1d8QdhG"]}], "id": "6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7bc85db8b99a33140", "asset": {"id": "3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"}, "operation": "TRANSFER"}, {"outputs": [{"amount": 1, "condition": {"details": {"bitmask": 32, "type": "fulfillment", "type_id": 4, "signature": null, "public_key": "4hfGNaQAZkwBk4maYxeAYUcuBDjkb9euQTGCi1d8QdhG"}, "uri": "cc:4:20:Nv2PPvWa8H7IKemuuBxqt_ZZiC5xQzLICTYqd9eioTc:96"}, "public_keys": ["4hfGNaQAZkwBk4maYxeAYUcuBDjkb9euQTGCi1d8QdhG"]}], "metadata": {"message": "send to @dimi"}, "version": "0.9", "inputs": [{"fulfillment": "cf:4:MhDNxo4dfAJGbX9QVfi7Mh0ghfgA4H1UqGyHip7NHGiJYkx9UaihwdLCLbtdzfIhL3CNrBo95lGwNWNzcqwb7qO1rvFw2NlHYYq-kwNCOW8H9mbBBiYFLAANpYhnXAAO", "fulfills": {"txid": "3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73", "output": 0}, "owners_before": ["4NSFHRzjjQNJ6kpCkXfeUciGfCme6H1htVNLAgymJ7bu"]}], "id": "6ad0a817aa0c2926572d00b5000276393c9ec098ca3795e2a58b18535f401a1a", "asset": {"id": "3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"}, "operation": "TRANSFER"}]
Which includes the transaction that raises on outputs: 6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7bc85db8b99a33140
Also, the GET on that transaction works:
http://localhost:49984/api/v1/transactions/6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7bc85db8b99a33140
{
"outputs": [
{
"amount": 1,
"condition": {
"details": {
"bitmask": 32,
"type": "fulfillment",
"type_id": 4,
"signature": null,
"public_key": "AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"
},
"uri": "cc:4:20:kOHgXLKCEdaS7oy71KDKTZJ-vaW8vT2sQumtv8edrmM:96"
},
"public_keys": [
"AkZUXyGrEygFF6R8vQveE2Wswkn4rSudEBuUSaV7Wiin"
]
}
],
"metadata": {
"message": "a new transaction to @bruce"
},
"version": "0.9",
"inputs": [
{
"fulfillment": "cf:4:Nv2PPvWa8H7IKemuuBxqt_ZZiC5xQzLICTYqd9eioTdi-OJQYfuWjD7xBs7oNTfLakBJnE5zNduNbzp651qDBpbvg3nd6gZLgEAJoDwjELgzWLW_tJuk3WJ3Oo6Vl2cA",
"fulfills": {
"txid": "6ad0a817aa0c2926572d00b5000276393c9ec098ca3795e2a58b18535f401a1a",
"output": 0
},
"owners_before": [
"4hfGNaQAZkwBk4maYxeAYUcuBDjkb9euQTGCi1d8QdhG"
]
}
],
"id": "6be9c0595fa4f01c59109b7cb12c9098f3bf3f1e37c49af7bc85db8b99a33140",
"asset": {
"id": "3205d467ac0ee6c129aff52124a033c0a97f670cb48a5d46a73c15712c857b73"
},
"operation": "TRANSFER"
}
I was able to reproduce this bug. To reproduce the bug we need to create a block with a duplicated transaction:
from time import sleep
from bigchaindb import Bigchain
from bigchaindb.models import Transaction
b = Bigchain()
# create and write an asset so we have an output to spend
tx_create = Transaction.create([b.me], [([b.me], 1)]).sign([b.me_private])
b.write_transaction(tx_create)
# wait for inclusion in bigchain and voting
sleep(1)
# create a block with a duplicated transfer transaction
tx_transfer = Transaction.transfer(tx_create.to_inputs(), [([b.me], 1)],
asset_id=tx_create.id).sign([b.me_private])
block = b.create_block([tx_transfer, tx_transfer])
# profit !!
b.write_block(block)
To check:
pipelines.block.BlockPipeline.create
?pipelines.vote.Vote.validate_block
?core.Bigchain.get_spent
1) Was fixed in this pr https://github.com/bigchaindb/bigchaindb/pull/1237 looking at the kyber repo is difficult to know if this code was already there when this bug occurred.
2) pipelines.vote.Vote.validate_block
is not checking for duplicated transactions in the block. This needs to be fixed
3) core.Bigchain.get_spent
is checking if a given (txid, output)
has already been spent in a transaction that is either in an UNDECIDED
, VALID
, or BACKLOG
state. This is ok because we prevent double spents even if it was used in a transatiction that is still being processed. The problem is that the CriticalDoubleSpend
exception is being incorrectly raised because it will raise even if the input was spent multiple times in still UNDECIDED
transactions. We need to change it to only raise if a given input was spent in multiple VALID
transactions.
This one is for @diminator: "when playing around with the kyber tx_explorer -> that happens"
Looks like it gets thrown in
get_spent