基础区块链项目出现IndexError: list index out of range错误求解决
区块链添加区块时触发IndexError求助
我为学校项目开发了一个基础区块链,尝试添加区块时遇到错误,请求协助解决。
当前blockchain_data.json内容
{"chain": [{"index": 0, "transactions": [], "timestamp": 1701466704.945516, "previous_hash": "0", "hash": "c6adb22cbafb1763769f2e6b606fb4eeb23e3764c3c545d7f7955fbcb66420b4", "data": "Genesis Block", "nonce": 0, "signature": "\u058a\u0011*\u0016\u000f\u001d\u0010\rFL;\u89c04\u001fl\u0015\u001d\u0002\u0484d[9} Jf1 *;e$\\\u007f0_{\u001d\"8\u0007\\\u01b5&De:\u070f\u00e0@tB\u000fxM\u0018\u8632\u001a<=\u0004<oj'.Wq12>pAuZ\u001fU0\u001a8j\u0001+_\u001f/\u06f9b:I],Y^:*(\ue3f0i1T)aO\u0019t\\K7F\u001eP\u00111\tH\u0003\u0007s\u000f<\u0013l}77XP\u0004\u0001p~\b&Rx"}]}
发送添加区块的请求命令
curl -X POST -H "Content-Type: application/json" -d '{"data": "Example Data"}' http://localhost:5000/mine
预期能将区块添加至区块链,但触发了如下错误:
错误日志
keys already exists. Skipping... anahtarlar yuklendi. anahtarlar yuklendi. Private RSA key at 0x7FB36406B910 Public RSA key at 0x7FB36406BB50 anahtarlar yuklendi. anahtarlar yuklendi. Can't verify chain integrityl!!! * Debugger is active! * Debugger PIN: 923-375-613 127.0.0.1 - - [10/Dec/2023 22:42:04] "POST /mine HTTP/1.1" 500 - Traceback (most recent call last): File "/home/wkb/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/flask/app.py", line 1478, in __call__ return self.wsgi_app(environ, start_response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/wkb/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/flask/app.py", line 1458, in wsgi_app response = self.handle_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/wkb/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/flask/app.py", line 1455, in wsgi_app response = self.full_dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/wkb/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/flask/app.py", line 869, in full_dispatch_request rv = self.handle_user_exception(e) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/wkb/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/flask/app.py", line 867, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/wkb/PycharmProjects/pythonProject1/venv/lib/python3.11/site-packages/flask/app.py", line 852, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/run/media/wkb/529042782E47F579/scratch.py", line 310, in mine_block block_index = blockchain.mine() ^^^^^^^^^^^^^^^^^ File "/run/media/wkb/529042782E47F579/scratch.py", line 143, in mine last_block = self.last_block ^^^^^^^^^^^^^^^ File "/run/media/wkb/529042782E47F579/scratch.py", line 87, in last_block return self.chain[-1] ^^^^^^^^^^^^^^ IndexError: list index out of range
核心错误是IndexError: list index out of range,触发位置是尝试获取self.chain[-1](即区块链的最后一个区块)时,发现self.chain是空列表。同时日志中还出现了Can't verify chain integrityl!!!的提示(注意此处拼写错误,应为integrity)。
内容的提问来源于stack exchange,提问作者Efe Çamzeybek
相关产品推荐
相关产品推荐

