Python区块链创建Genesis Block教程
我们假设TPCoins的发起人最初向已知客户 Dinesh 发出500个TPCoins.为此,他首先创建一个Dinesh实例 :
Dinesh = Client()
然后我们创建一个创世纪交易,并向Dinesh的公共地址发送500个TPCoins.
t0 = Transaction ( "Genesis", Dinesh.identity, 500.0 )
现在,我们创建 Block的实例类并将其命名为 ;block0
block0 = Block()
我们将 previous_block_hash 和 Nonce 实例变量初始化为无,因为这是第一个事务存储在我们的区块链中.
block0.previous_block_hash = None Nonce = None
接下来,我们将上面的t0事务添加到块中保留的 verified_transactions 列表中 :
block0.verified_transactions.append (t0)
此时,该块已完全初始化并准备好添加到我们的区块链中.我们将为此目的创建区块链.在我们将块添加到区块链之前,我们将对块进行散列并将其值存储在我们之前声明的名为 last_block_hash 的全局变量中.该值将由其块中的下一个矿工使用.
我们使用以下两行编码来对块进行散列并存储摘要值.
digest = hash (block0) last_block_hash = digest
最后,我们创建一个区块链正如我们在下一章中看到的那样.
以上就是Python区块链创建Genesis Block教程的详细内容,更多关于Python区块Genesis Block的资料请关注我们其它相关文章!
相关推荐
-
Python区块链Creating Miners教程
目录 消息摘要函数 挖掘函数 第1步 第2步 第3步 测试挖掘函数 为了实现挖掘,我们需要开发一个挖掘功能.挖掘功能需要在给定的消息字符串上生成摘要并提供工作证明.让我们在本章讨论这个. 消息摘要函数 我们将编写一个名为 sha256 的实用程序函数来创建给定消息的摘要 : def sha256(message): return hashlib.sha256(message.encode('ascii')).hexdigest() sha256 函数将消息作为参数进行编码它为ASCII,生成十六
-
python区块链创建多个交易教程
目录 创建多个交易 显示事务 交易队列 创建多个客户端 创建第一个事务 添加更多交易 转储交易 创建多个交易 各个客户进行的交易在系统中排队;矿工从这个队列中获取交易并将其添加到块中.然后他们将挖掘区块,获胜的矿工将有权将区块添加到区块链中,从而为自己赚取一些钱. 我们将在稍后讨论这个挖掘过程区块链的创建.在我们为多个事务编写代码之前,让我们添加一个小实用程序函数来打印给定事务的内容. 显示事务 display_transaction 函数接受事务类型的单个参数.接收到的事务中的字典对象被复制到
-
Python区块链创世块创建教程
区块链包含彼此链接的区块列表.要存储整个列表,我们将创建一个名为TPCoins : 的列表变量; TPCoins = [] 我们还将编写一个名为 dump_blockchain 的实用程序方法来转储整个区块链的内容.我们首先打印区块链的长度,以便我们知道区块链中当前存在多少个区块 def dump_blockchain (self): print ("Number of blocks in the chain: " + str(len (self))) 请注意,随着时间的推移,数
-
Python区块链块的添加教程
目录 添加第一个区块 添加更多块 转储整个区块链 每个矿工将从先前创建的交易池中获取交易.要跟踪已挖掘的消息数量,我们必须创建一个全局变量 : last_transaction_index = 0 我们现在让我们的第一个矿工在区块链中添加一个区块. 添加第一个区块 到添加一个新块,我们首先创建一个 Block 类的实例 block = Block() 我们从队列中选取前3个交易并减去; for i in range(3): temp_transaction = transactions[l
-
Python区块链范围结论及Genesis Block的添加教程
目录 Genesis Block添加 结论 Genesis Block添加 将块添加到区块链包括将创建的块附加到我们的 TPCoins 列表. TPCoins.append (block0) 请注意,与系统中的其余块不同,genesis块只包含一个由TPCoins系统的发起者启动的事务.现在,您将通过调用我们的全局函数转储区块链的内容 dump_blockchain : dump_blockchain(TPCoins) 执行此功能时,您将看到以下输出 : Number of blocks in
-
Python区块链客户端类开发教程
目录 开发客户端 客户端类 客户端 测试客户端 开发客户端 客户是持有TPCoins并从网络上的其他供应商处交换商品/服务的客户,包括他自己的.我们应该为此目的定义 Client 类.要为客户端创建全局唯一标识,我们使用PKI(公钥基础结构).在本章中,让我们详细讨论一下. 客户应该能够将钱包从另一个已知的人那里汇款.同样,客户应该能够接受来自第三方的钱.对于花钱,客户将创建一个指定发件人姓名和支付金额的交易.为了收款,客户将向第三方提供他的身份 : 本质上是钱的发送者.我们不存储客户持有的钱包
-
Python区块链交易类教程
目录 创建 Transaction 类 测试交易类 创建 Transaction 类 在本章中,让我们创建一个 Transaction 类,以便客户能够向某人汇款.请注意,客户可以是货币的发件人或收件人.当您想要收款时,其他一些发件人将创建一个交易并在其中指定您的公开地址.我们将事务类的初始化定义如下 : def __init__(self, sender, recipient, value): self.sender = sender self.recipient = recipi
-
Python区块链创建Block Class教程
一个块由不同数量的事务组成.为简单起见,在我们的例子中,我们假设该块由固定数量的事务组成,在这种情况下为3.由于块需要存储这三个事务的列表,我们将声明一个名为 verified_transactions 的实例变量,如下所示 : self.verified_transactions = [] 我们已将此变量命名为 verified_transactions ,以表明只有经过验证的有效交易将被添加到块中.每个块还保存前一个块的哈希值,以便块链变为不可变. 为了存储前一个哈希,我们声明一个实例变量如
-
Python区块链创建Genesis Block教程
我们假设TPCoins的发起人最初向已知客户 Dinesh 发出500个TPCoins.为此,他首先创建一个Dinesh实例 : Dinesh = Client() 然后我们创建一个创世纪交易,并向Dinesh的公共地址发送500个TPCoins. t0 = Transaction ( "Genesis", Dinesh.identity, 500.0 ) 现在,我们创建 Block的实例类并将其命名为 ;block0 block0 = Block() 我们将 pre
-
python区块链基本原型简版实现示例
目录 说明 引言 区块 区块头 区块链 总结 说明 本文根据https://github.com/liuchengxu/blockchain-tutorial的内容,用python实现的,但根据个人的理解进行了一些修改,大量引用了原文的内容.文章末尾有"本节完整源码实现地址". 引言 区块链是 21 世纪最具革命性的技术之一,它仍然处于不断成长的阶段,而且还有很多潜力尚未显现. 本质上,区块链只是一个分布式数据库而已. 不过,使它独一无二的是,区块链是一个公开的数据库,而不是一个私人数
随机推荐
- 冲浪DDoS(拒绝服务)攻击的趋势与防御
- 恢复从 Access 2000、 Access 2002 或 Access 2003 中数据库删除表的方法
- oracle误删数据表还原的二种方法(oracle还原)
- 使用java生成字母验证码
- IOS 实现一个死锁导致 UI 假死的例子
- PHP实现的购物车类实例
- Node+Express+MongoDB实现登录注册功能实例
- Python计算字符宽度的方法
- 纯CSS3代码实现滑动开关效果
- 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
- java利用冒泡排序对数组进行排序
- JDK8中新增的原子性操作类LongAdder详解
- 四种Java线程池用法解析
- C#中日期时间的简单操作
- C#中抛出异常用法实例
- 咖啡 喝多了有什么不好小结
- vim配置go语言语法高亮问题的解决方法
- Python 3.x基于Xml数据的Http请求方法
- selenium+python环境配置教程详解
- 简单了解java volatile