我写Python写了有十年的时间, 在转去搞区块链那个阶段的时候, 我确确实实是吓了一跳。crypto、共识、P2P通信, 每一样内容都需要我从头开始慢慢去理解和消化。这跟以前编写那种增加信息、删除信息、修改信息以及查询信息的业务功能代码来说, 它们是完全不同类型的东西。
从表面现象上来进行分析, 你只是简单使用了web3.py这个工具去连接区块链网络从而读取相关的数据, 看起来调用过程已经实现了正常功能,但是当你真正需要去编写智能合约、控制Gas费用以及监听链上事件的时候, 你会发现这些操作全都是非常细致且繁琐的工作。
在最初版本中, 我只成功完成了一笔交易的执行操作, 仅仅为了调整和修正nonce参数的数值, 就花费了整整两天的时间去不断地调试和测试, 这个过程的感觉就像是修复一台老旧的收音机那样复杂, 需要用力拧紧各种螺丝, 使得双手都感到非常酸痛和疲劳。

你不要着急, 因为这件事情是没有捷径可走的。
我现在所采用的办法只有唯一的一条, 那就是先把整条链从头到尾地走一遍流程, 涉及到的环节包括挖矿、出块以及验证, 然后用纯Python撸个极简版来进行实现, 完全不去考虑运行效率的问题, 只求能够把背后的原理理解透彻到位, 这种做法的效果要比直接照着官方文档去抄袭代码要强上十倍之多。
