前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >前沿Python技术:用不到50行的Python代码构建最小的区块链

前沿Python技术:用不到50行的Python代码构建最小的区块链

作者头像
企鹅号小编
发布于 2017-12-27 09:21:49
发布于 2017-12-27 09:21:49
7580
举报
文章被收录于专栏:编程编程

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

区块链

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

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

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

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

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

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

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

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

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

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

本文来自企鹅号 - Python运维圈媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - Python运维圈媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
原 区块链是什么?彻底理解只需40行pyt
尽管有人认为区块链目前还是个不成熟的解决方案,但它无疑称得上是计算机发展历史上 的一个奇迹。但是,到底区块链是什么呢? 我们将通过动手实现一个迷你的区块链来帮你 真正理解区块链技术的核心原理。pyth
用户1408045
2018/05/07
6640
原                                                                                区块链是什么?彻底理解只需40行pyt
人民日报整版报道区块链,我只想知道用什么语言开发?
IT派 - {技术青年圈} 持续关注互联网、区块链、人工智能领域 2月26日,《人民日报》经济版头条整版刊发了区块链署名评论文章《三问区块链》《抓住区块链这个机遇》及《做数字经济领跑者》,积极肯定了
IT派
2018/03/27
2.3K0
人民日报整版报道区块链,我只想知道用什么语言开发?
麻将算什么? 纽约时报竟然暗藏着世界上最早的区块链
随着加密货币的火热,区块链自去年以来一直充斥着人们的茶余饭后,甚至连街边的大妈说起区块链都头头是道,不知道大家是通过什么途径听说区块链的。
区块链大本营
2018/09/21
7930
麻将算什么? 纽约时报竟然暗藏着世界上最早的区块链
用不到50行的Python代码构建最小的区块链
本文用不到50行的 Python 代码构建最小的数据区块链,简单介绍了区块链去中心化的结构与其实现原理。
CSDN技术头条
2018/02/13
1.5K2
用不到50行的Python代码构建最小的区块链
用不到 50 行的 Python 代码构建最小的区块链
该文介绍了如何使用不到50行的Python代码构建一个简单的区块链。首先定义了一个名为Block的类,用于存储区块的索引、时间戳、数据和前一个区块的哈希等信息。然后通过实例化Block类,创建一个包含20个块的区块链,并手动添加一个起源块。最后,介绍了如何将区块链添加到区块链列表中,并打印出每个区块的哈希值。
企鹅号小编
2017/12/25
6780
用不到 50 行的 Python 代码构建最小的区块链
50行python代码构建一个最小的区块链
虽然有些人认为区块链(blockchain)技术的应用场景还有待研究,但毫无疑问,这一新颖技术的出现是计算界的奇迹。那么,什么是区块链?
诸葛青云
2019/10/31
7940
50行python代码构建一个最小的区块链
50 行 Python 代码构建一个区块链
尽管有人认为区块链 (blockchain) 是一个答案先于问题的技术,但毫无疑问, 这项新的技术已然是一个计算的奇迹。不过,到底区块链是什么呢
用户1558438
2018/08/23
7190
在.Net Core中构建一个基本的区块链
介绍 区块链技术是比特币的基础,比特币是世界上最流行的加密货币。随着比特币的普及,区块链的曝光率也很高。人们现在也开始在非加密货币类型的应用程序中使用区块链。看看中本聪(Satoshi Nakamot
程序你好
2018/07/20
1.3K0
区块链 - 区块链基础知识入门
早在 1999 年,文件共享网络 Napster 就出现了,可方便用户在混合对等网络(之所以使用“混合”一词是因为它使用了中央目录服务器)上轻松共享音频文件(通常包含音乐)。文件共享网络不仅仅可用于共享音乐文件,还允许所有用户保留这些共享文件的副本。这样一来,单个数字资产就会跨全球网络生成无限个合理副本。这项技术简单易用,只要有计算机,任何人都可以利用它。这让备受尊崇的淘儿唱片业绩意外下滑。到 2006 年,淘儿唱片被迫关闭了它在美国国内的所有 89 家门店。 2008 年,次贷危机爆发。在此期间,成立已久
程序你好
2018/07/20
12.9K0
一个程序员眼中的区块链技术
我为什么要写这篇文章?在了解区块链相关信息时(例如维基百科上的内容),我发现这些内容非常零碎和不连贯。要把这些零碎的信息整合在一起,形成一个完整的视图需要花费大量的时间。不过现在,我想我已经知道在引入区块链时要使用哪些东西,以及应该按照怎样的顺序来了解它们,以便让开发人员能够在 1 到 1.5 小时内看到完整的视图。本文内容经过一定程度的简化,如果有人对更复杂的细节感兴趣,可以继续深入探讨。
java架构师
2018/08/23
5400
一个程序员眼中的区块链技术
我仅用50 行 JavaScript 代码从头构建区块链,向你介绍区块链的工作原理
区块链,区块链,区块链!在过去的十年里,我们一次又一次地听到这个技术流行语。它被认为是 21 世纪最重要的发明之一。
winty
2021/12/10
1.2K0
我仅用50 行 JavaScript 代码从头构建区块链,向你介绍区块链的工作原理
区块链技术原理
随着互联网技术的不断发展和应用,数据的数量和价值也在不断增长,然而如何保护数据的安全和隐私,如何有效地管理和交换数据成为了一个日益重要的问题,区块链技术作为一种新兴的分布式数据库技术具有去中心化、安全和透明等特点,在数据管理和交易方面具有广泛的应用前景。本文将从区块链技术的基本概念、工作原理等方面进行介绍和概述,通过对区块链技术的深入了解,读者可以掌握其基本原理和应用方法为未来的区块链技术应用和创新提供帮助和指导
Al1ex
2023/08/10
4640
区块链技术原理
极简区块链手册:什么是区块链?什么是比特币?
前言:疯狂的时代 这个时代变化太快,互联网金融刚刚热了几年,金融科技便取而代之。一波波新概念让我们眼花缭乱,在不断鼓噪的创新颠覆中,莫名的焦虑感笼罩着所有人。相信我,你并不孤独!我也是那焦虑的一员。我就是这样的一个焦虑症患者,一直关注比特币的挖矿、算法逻辑和区块链的各种新消息,不时沉浸在瞬间的快乐和间歇性沮丧之中。面对所有变化——金融的、艺术的、科技的、社会的,我们都会坚定地向往和跟随这些创新,即便大多数会走向失败,过程却是充满着大大小小的快活之处。我相信区块链也会是这样的。 先问自己一个问题,如果不懂
企鹅号小编
2018/01/24
2.4K0
极简区块链手册:什么是区块链?什么是比特币?
ACM Queue 顶级论文:厘清关于区块链、比特币的所有误区
译者 | 牟云飞 责编 | 唐小引 当前,对于区块链,大部分人都存在些许在基本认知维度的误区,譬如直接将区块链等同于比特币、所有 ICO 都是骗局等,即使是对技术人而言,都还没搞清楚区块链的代码和算法,更遑论涉及到实际场景应用的实践。日前,国际计算机学会期刊 ACM Queue 发表论文,追本溯源,对比特币及其底层技术 —— 区块链的技术栈进行了系统的梳理和论证,由此发现,比特币的几乎所有技术组成部分都源于 20 世纪 80、90 年代的学术文献,如分布式账本和拜占庭协议,便可追溯到 20 多年前,这不是任
区块链大本营
2018/05/10
1.5K0
区块链101:区块链能做什么?
在过去的30年里,金融机构资助了无数行业的崩溃;他们对革命技术能对静态的现任者做些什么有个想法。 因此,为了保持领先地位,银行在建立研发实验室、建立测试中心和与区块链开发人员建立伙伴关系方面都积极主动,以充分了解该技术的革命性潜力。 金融机构是第一个涉足的领域,但学术界、政府和咨询公司也在研究这种技术。 当然,除了企业家和开发者所做的,所有这些工作都是通过寻找新的方法来使用比特币或以太区块链,或者创建全新的区块链。 这已经持续了三年多了,结果开始出现了。 虽然有些水域仍然浑浊,但我们知道区块链可以做到:
架构师研究会
2018/04/09
3.9K0
区块链101:区块链能做什么?
20分钟,我用简单的Python代码创建了一个完整的区块链!想学吗?
这是篇技术文,我们会用Python一步步搭建一个完整的区块链。不过,在此之前,咱们还是先说说你什么你该学习如何从零搭建一个区块链。
区块链大本营
2018/07/25
5840
20分钟,我用简单的Python代码创建了一个完整的区块链!想学吗?
区块链比特币入门详解
比特币和区块链技术的发展非常迅速,即使那些没有听说过加密货币或了解其工作的人也在寻求投资和探索这个领域。区块链技术和加密货币今天已经成为人们开始执行标准交易的平行平台。现在,如果一个新系统正在慢慢取代
若与
2018/06/13
1.6K0
量子计算和区块链的未来
谈到计算的未来,区块链和量子计算是最受人关注和最具争议的两个行业。虽然区块链在加密货币和密码学领域的实际应用要领先得多,但量子计算行业也在以惊人的速度增长。事实上,量子计算行业的增长率仅次于区块链,预计从 2022 年到 2027 年,该行业将以每年 25% 的速度增长。
小将
2022/04/20
1.9K0
量子计算和区块链的未来
干货 17年大盘点:区块链领域常见术语详析
以下是区块链领域中的一些常见术语,供有兴趣了解区块链技术的朋友参考。 1、地址(Addresses,加密数字货币地址)用于在网络上接收和发送事务。地址是一个字母数字字符串,但也可以表示为可扫描的QR码。 2、协议分类账(Agreement ledger)是由两方或多方用来协商和达成协议的分布式分类账。 3、Altcoin是“Bitcoin alternative”(比特币的替代品,或着说山寨版)的缩写。目前,大多数Altcoin都是比特币的分叉,通常比特币区块链的工作量证明(POW)算法有一些细微变化
企鹅号小编
2018/02/02
8910
干货 17年大盘点:区块链领域常见术语详析
区块链学堂——区块链词汇手册
【区块链】:Blockchain,分布式存储、加密算法、共识机制、P2P传输等计算机技术结合的新型应用模式。 【区块】:Block,用于记录区块链系统中数据的存储。 【链】:chain,区块头中通过引用哈希值链接。 【区块链服务】:BAAS,blockchain as a service,区块链即服务。 【分布式】:Decentralized,不依赖中心服务器,分布的计算机资源进行计算处理的模式。 【共识机制】:consensus,区块链中事务达成的分布式共识算法。 【P2P传输】:peer-to-pe
企鹅号小编
2018/01/24
15.7K0
区块链学堂——区块链词汇手册
推荐阅读
相关推荐
原 区块链是什么?彻底理解只需40行pyt
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文