从零开始自己动手写区块链
文章平均质量分 63
用python实现区块链
这该死迷人的编程
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
区块链:Raft协议
是一种,这种机制适用于网络中存在一定数量的故障节点,但不考虑“恶意”节点的情况,所以更适合作为私有链和联盟链的共识算法。原创 2024-11-08 10:43:44 · 1248 阅读 · 0 评论 -
区块链(simachain):UTXO中的Vout的to_addr(未解决)
zhangsan.get_unconfirmed_utxo() 获取的 UTXO 的 to_addr 是 zhangsan 的地址,因为这些未确认的 UTXO 是作为交易的输入(Input)被引用的。因为它们不是张三可以花费的UTXO,这些输出不会出现在张三的OWN_UTXO_SET中,所以张三的to_addr指向自己。当 zhangsan 创建一笔交易时,他引用自己的钱包中的 UTXO 作为输入(Input),这些 UTXO 的 to_addr 是 zhangsan 的地址。原创 2024-10-17 19:22:21 · 360 阅读 · 0 评论 -
区块链(simchain):交易中的输出单元Vout
def pubkey_script(self): 方法生成一个包含比特币脚本操作码的字符串,用于验证交易输出中的接收地址和签名。“OP_DUP OP_ADDR {0} OP_EQ OP_CHECKSIG” 是一个模板字符串,其中 {0} 是一个占位符,表示将要被替换的部分。format(self[0]) 将 self[0] 的值插入到模板字符串中的 {0} 位置。这个脚本通常用于验证交易输出是否有效,确保接收地址是正确的,并且签名是有效的。原创 2024-10-15 15:44:17 · 292 阅读 · 0 评论 -
区块链(simchain):HD钱包“种子”生成密钥
key 是用于生成 HMAC 的密钥。在这个例子中,密钥是字节串 b’Simchain seed’。这个密钥是固定的,用于确保生成的派生密钥的一致性和安全性。msg 是输入的消息,用于生成 HMAC。在这个例子中,消息是 master_seed,即之前生成的 32 字节随机种子。digestmod 是用于生成哈希的算法。在这个例子中,使用的是 SHA-512 算法,它生成一个 512 位的哈希值。.digest():digest() 方法返回生成的 HMAC 的二进制格式。原创 2024-10-11 20:35:15 · 584 阅读 · 0 评论 -
区块链(simchain):公钥转换为地址
上述地址生成采用与比特币一样的算法,即对公钥宇节串进行两次哈希运算,分别采用sha256 ripemd160 哈希算法,得到 160 位的公钥哈希值,然后在其前加上 一个字节的地址版本信息\x00 ,得到一个 21 字节的字节串。在这个上下文中,new(‘ripemd160’, sha) 表示创建一个 RIPEMD-160 哈希对象,并用之前得到的 SHA-256 哈希值 sha 初始化该对象。获取哈希结果:使用 digest() 方法获取最终的哈希值。创建哈希对象:使用特定的哈希算法创建一个哈希对象。原创 2024-10-10 11:44:22 · 701 阅读 · 0 评论 -
区块链(python)第二个问题:python中实例方法里的参数传不进去
又尝试n1.print_tuple([1,2])也是报同样的错误TypeError: print_tuple() takes 1 positional argument but 2 were given。如果你在类中定义一个方法,并且第一个参数不是 self,那么这个方法不会自动绑定到当前对象。例如,t.print_tuple() 实际上等价于 t.print_tuple(t)。即方法中a被自动传递为当前对象,若想n1.print_tuple([3,4])当前对象被传递到self即可成功打印列表a。原创 2024-10-03 17:08:33 · 369 阅读 · 0 评论 -
区块链(python)第一个问题:python中的__new__
不可变对象初始化:对于像 tuple 这样的不可变类型来说,一旦创建后就不能修改其内容,因此所有的初始化工作必须在。问题二:super(NewTuple, cls)中的参数为什么又有NewTuple又有cls,它俩不是一个意思吗?(tuple, iterable) 来创建一个新的 tuple 对象,然后调用。在这个例子中,我们定义了一个继承自 tuple 的子类 MyTuple,并在。之前被调用的,它的主要职责是为对象分配内存,并返回这个新创建的对象实例。方法是一个特殊的方法,它用于创建一个类的实例。原创 2024-10-03 16:29:25 · 645 阅读 · 0 评论
分享