位置: 编程技术 - 正文

用不到50行的Python代码构建最小的区块链(python 500行)

编辑:rootadmin

推荐整理分享用不到50行的Python代码构建最小的区块链(python 500行),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python编程100行,python500/10,python每行代码长度不能超过100个字符,python每行代码长度不能超过100个字符,python每行代码长度不能超过100个字符,python每行代码长度不能超过100个字符,python 500行,python每行代码长度不能超过100个字符,内容如对您有帮助,希望把文章链接给更多的朋友!

译者注:随着比特币的不断发展,它的底层技术区块链也逐步走进公众视野,引起大众注意。本文用不到行的Python代码构建最小的数据区块链,简单介绍了区块链去中心化的结构与其实现原理。

尽管一些人认为区块链是一个等待问题的解决方案,但毫无疑问,这种新技术是计算机的奇迹。但是,区块链到底是什么呢?

区块链

它是比特币或其他加密货币进行交易的数字账本,账本按时间顺序记录并对外公开。

在更一般的术语中,它是一个公共数据库,新数据存储在一个名为块的容器中,并被添加到一个不可变链(后来的区块链)中添加了过去的数据。在比特币和其他加密货币的情况下,这些数据是一组交易记录。当然,数据可以是任何类型的。

区块链技术已经催生了新的、完全数字化的货币,如比特币和莱特币,这些货币并不是由中央政府发行或管理的。因此为那些认为今天的银行系统是骗局或终将失败的人带来了新的自由。区块链所包含的以太坊技术对分布式计算进行了变革创新,它引入了一些有趣的概念,比如智能合约。

用不到50行的Python代码构建最小的区块链(python 500行)

在本文中,我将用不到行的Python2代码来做一个简单的区块链。我称它为SnakeCoin。

首先将定义块将是什么样子。在区块链中,每个块都存储一个时间戳和一个索引。在SnakeCoin中,需要把两者都存储起来。为了确保整个区块链的完整性,每个块都有一个自动识别散列。与比特币一样,每个块的散列将是块索引、时间戳、数据和前块哈希的加密哈希。数据可以是你想要的任何东西。

这一步后有块结构,但现在是创建区块链,所以需要向实际的链中添加块。如前所述,每个块都需要上一个块的信息。但是按照这个说法就有一个问题,区块链的第一个区块是如何到达那里的呢?不得不说,第一个块,或者说是起源块,它是一个特殊的块。在很多情况下,它是手动添加的,或者有独特的逻辑允许添加。

下面将创建一个函数简单地返回一个起源块以便产生第一个区块。这个块是索引0,它具有任意的数据值和“前一个哈希”参数中的任意值。

现在已经创建好了起源块,接下来需要一个函数,以便在区块链中生成后续的块。这个函数将把链中的前一个块作为参数,创建要生成的块的数据,并使用适当的数据返回新块。当新的块哈希信息来自前面的块时,区块链的完整性会随着每个新块而增加。如果不这样做,外部组织就更容易“改变过去”,用全新的方式取代已有的链条。这一系列的散列可以作为加密的证据,有助于确保一旦将块添加到区块链,它就不能被替换或删除。

大部分的工作已经完成,现在可以创建区块链了。在这次的示例中,区块链本身是一个简单的Python列表。列表的第一个元素是起源块。当然,还需要添加后续的块,因为SnakeCoin是最小的区块链,这里只添加个新的块。可以用for循环来生成新块。

下面来测试一下目前产生的区块链。

看到了吧,这就是区块链。如果希望在控制台中查看更多信息,可以编辑完整的源文件并打印每个块的时间戳或数据。

这就是SnakeCoin要提供的所有东西。为了使SnakeCoin规模达到今天生产区块链的规模,必须添加更多的功能,比如服务器层,以跟踪多台机器上的链变化,以及在给定的时间段内限制添加的块数量的工作算法。

作者丨Gerald Nash翻译丨黑色巧克力

标签: python 500行

本文链接地址:https://www.jiuchutong.com/biancheng/372271.html 转载请保留说明!

上一篇:python内置函数:lambda、map、filter简单介绍(python内置函数open()的参数用来指定打开文本文件)

下一篇:Python自然语言处理之词干,词形与最大匹配算法代码详解(Python自然语言处理PDF)

  • 以旧换新销售商品
  • 税金及附加怎么来的
  • 企业购买银行理财的条件
  • 委外加工怎么做仓库账
  • 城建税计提与缴纳分录
  • 金蝶旗舰版如何反过账
  • 个人部分社保怎么计算
  • 专用发票抬头一定要打完整吗
  • 新企业所得税法规定的企业所得税基本税率
  • 企业重组个人股东个人所得税
  • 汇票贴现的账务处理
  • 房屋租赁需要交税吗?
  • 公司垫付员工工资怎么做账
  • 以前年度损益调整属于哪类科目
  • 营改增后房产土地作价入股该如何做税务处理?
  • 企业自有公租房有房产证吗
  • 个人取得的稿酬收入应该如何计算
  • 企业利息收入要交所得税吗
  • 进项税发票认证流程
  • 出口退税附加税什么时候缴纳
  • 如何向税务局申请开发票
  • 银行贷款的纳税申报表指的所得税还是增值税
  • 个人领取住房公积金需要什么材料
  • 公司投资另外一个公司全资占股需要什么流程
  • 进项税额转出会计分录月末如何结转
  • 个体户如何办税
  • 缴纳残保金和工龄有关吗
  • 副调基金的会计分录怎么做?
  • cpu不支持vt怎么办
  • 鸿蒙负一屏怎么设置
  • 成立非盈利组织的条件
  • 其他应付款计入什么科目
  • php哪个函数能取得字符串长度
  • 初级会计应收账款例题
  • linux小技巧
  • linux系统参数调优
  • PHP:Memcached::append()的用法_Memcached类
  • 购买专利权的会议纪要
  • 逾期未收回包装物押金增值税怎么算
  • 寓意幸福和团圆的网名
  • 最好的ph计
  • 写一个php访问数据库并读取数据的脚本
  • win11硬件加速gpu计划怎么关
  • 应收贷方有余额怎么调整
  • mysql中regexp_substr函数的使用
  • vue2 自定义 el-radio-button 的样式并设置默认值的方法
  • 运费已付发票未到会计分录
  • 生产销售库存的会计科目
  • MySQL 数据库中,用于事务授权控制的关键词是下面哪个?
  • 小企业固定资产入账标准
  • 员工周转房管理办法
  • 公司费用怎么做账
  • 其他业务收入的现金流放哪里?
  • 应收账款管理应该收集哪些信息
  • 社保税款所属期申报错了要紧吗?
  • 亏损弥补的新旧不同
  • 印花税减免额不能为零怎么填
  • 普通发票找不到了可以重开吗
  • 从业人数和资产总额指标,应按企业
  • 房地产企业收入确认条件税法
  • 企业租用个人房屋的财税处理
  • 劳务公司的工资表怎么做账
  • sql server错误和使用情况报告
  • CentOS6.9+Mysql5.7.18源码安装详细教程
  • ubuntu14.04安装vim
  • win造字软件
  • windows10设置无法使用
  • ubuntu下添加新用户
  • realjbox.exe - realjbox是什么进程 作用是什么
  • 一打字就出现windows设置
  • javascriptz
  • javascript definitive guide
  • eclipse创建android项目
  • 批处理文件是可执行文件吗
  • 安卓art set
  • 安卓activity和fragment的区别
  • 山东税务局电子税务局申报
  • 北京国税地税合并
  • 变更税务登记后多长时间生效
  • 献完青春献终身 献完终身献子孙 关系户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设