使用Python从零开始开发区块链应用程序您将能够使用Flask微框架.DOC

使用Python从零开始开发区块链应用程序您将能够使用Flask微框架.DOC

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Python从零开始开发区块链应用程序您将能够使用Flask微框架

使用 Python 从零开始开发区块链应用程序 您将能够使用 Flask 微框架为区块链的不同功能创建端点,比如添加事务,然后在多个机器上运行脚本来创建一个去中心化网络。您还将了解如何构建一个简单的用户界面,以便与区块链进行交互,并存储任何用例的信息,比如对等支付、聊天或电子商务。 Python 是一种容易理解的编程语言,这是我在本教程中选择它的原因。通过学习本教程,您将实现一个公有区块链并了解它的实际应用。GitHub 上提供了一个完整的样本应用程序代码,该应用程序完全是用 Python 编写的。 HYPERLINK /satwikkansal/ibm_blockchain 获取代码 主要逻辑包含在 views.py 文件中。让我们一起分析一下该逻辑,以便真正全面了解区块链。 前提条件 Python 的基础编程知识 Flask 微框架(用于创建区块链服务器的端点) 背景 2008 年,一个名叫 Satoshi Nakamoto 的人(或者可能是一个小组)发表了一篇名为《比特币:一种对等电子现金系统》的白皮书。该文章结合了密码学技术和对等网络,不需要依靠中心化权威机构(比如银行)就能在人们之间实现付款。比特币应运而生。除了比特币之外,这篇文章还介绍了一种存储数据的分布式系统(即现在广为人知的“区块链”),该系统的适用范围远不只是付款或加密货币。 从那时起,几乎每个行业都对区块链产生了浓厚的兴趣。无论是像比特币这样的完全数字化的货币、像以太坊这样的分布式计算技术,还是像 IBM Blockchain Platform 所基于的 Hyperledger Fabric 这样的开源框架,现在都以区块链作为其背后的基础技术。 “区块链”是什么? 区块链是一种存储数字数据的方式。数据可以是任何内容。对于比特币,它是事务(在帐户之间转移比特币),它甚至可以是文件;这都无关紧要。数据是以区块形式进行存储的,区块使用哈希值链接在一起。因此得名“区块链”。 区块链的神奇之处是在其中添加和存储此类数据的方式,该方式造就了一些非常理想的特征: 历史记录无法更改 系统无法攻破 数据的持久保存 没有单点故障 那么区块链如何能够实现这些特征呢?我们将通过实现一个区块链来深入剖析它。让我们开始吧。 关于该应用程序 首先定义一下我们将要构建的应用程序的用途。我们的目的是构建一个允许用户共享信息的简单网站。因为内容将存储在区块链中,所以它无法更改且会永远存在。 我们将采用自下而上的实现方式。首先定义我们将存储在区块链中的数据的结构。 一篇帖子(任何用户在我们的应用程序上发布的一条消息)将由 3 个基本要素来标识: .1内容 2.作者 3.时间戳 将事务存储到区块中 我们将采用一种广泛使用的格式来将数据存储在区块链中:JSON。以下是一篇存储在区块链中的帖子的格式: { author: some_author_name,? content: Some thoughts that author wants to share,? timestamp: The time at which the content was created } 术语“数据”通常在互联网上被“事务”一词所取代。所以,为了避免混淆并保持一致,我们将使用术语“事务”来表示在我们的示例应用程序中发布的数据。 事务被打包到区块中。一个区块可以包含一个或许多个事务。包含事务的区块频繁地生成并添加到区块链中。因为可能有多个区块,所以每个区块都应有一个唯一 ID: class Block:? def __init__(self, index, transactions, timestamp):? self.index = []? self.transactions = transactions? self.timestamp = timestamp 让区块不可更改 我们希望检测出对区块内存储的数据的任何篡改。在区块链中,这是使用一个哈希函数来实现的。 哈希函数接受任何大小的数据并生成固定大小的数据,该结果通常用于识别输入。下面是 Python 中的一个使用 sha256 哈希函数的示例: from hashlib import sha256 data = Some variable length data sha256(data).hexdigest() b919fbbcae38e2bdaebb6c04ed4098e5c 70563d2dc51e085f784c058ff208516 sha256(data).hexdigest() # no matter how many times you run it, the result is going to be the same 256 chara

文档评论(0)

sunhongz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档