100 行代码中的区块链

100 行代码中的区块链

原文:https://medium.com/hackernoon/blockchain-in-100-lines-of-code-50186a9a230

一切都应该尽可能简单,但不是更简单

什么是 blokchain?

从技术角度来看,这是一个分布式数据库,具有验证、存储和数据同步等特殊功能。

从商业角度来看,这是一个允许高效和可靠的对等交易而不需要中央控制点的概念。

区块链与分布式数据库相比有一些不同之处。区块链有“仅附加”操作,其中数据被验证和签名。

玩家和框架

人们很容易混淆,因为通常当我们谈论区块链时,我们也谈论我们试图与他们一起解决的问题。比特币和以太坊等总部位于区块链的热门项目就是这种情况。术语“区块链”通常与交易、智能承包商或加密货币等概念紧密联系在一起。

这使得理解区块链变得更加困难。这就是为什么我会用 100 行代码完成一个简单的区块链,叫做 Chainpro 。我通常这样做是为了更好地理解事情是如何在引擎盖下工作的,所以请随意检查 30 行代码中的“ Flux 架构”,称为 Flypro 和 50 行代码中的“虚拟 DOM”,也就是 Dompro

体系结构

区块链是一个区块链。为了使事情尽可能简单,但不是更简单,每个块都包括最必要的:索引、时间戳、数据、散列和以前的散列。并且将要添加到链中的每个新块也应该被验证。

block.js

链是一个单例实现,您可以用一个新的有效块来扩展它,并在多个对等连接的情况下替换一个链,选择其中具有最长块数的一个。

chain.js

节点的一个重要部分是与其他节点共享和同步链。当一个节点产生一个新的块时,它将它广播到网络。当一个节点连接到一个新的对等节点时,它会查询最新的块。当节点遇到索引大于当前已知块的块时,它或者将该块添加到其当前链中,或者查询完整的区块链。没有自动对等发现。手动添加的对等点的位置(= URLs)。

routes.js

用户能够使用 HTTP 服务器来控制节点,以列出链中的所有块,用用户给定的内容创建新的块,列出并添加对等体。应该注意,node 公开了两个 web 服务器:一个供用户 qp 控制节点(HTTP 服务器),另一个用于节点之间的对等通信(Websocket P2P 服务器)。更多详情请查看 GitHub

使用案例和优势

从 IT 角度来看,blockhain 是透明和不可变的分布式高可用性数据库,具有加密支持的数据一致性验证、智能合同和原子事务。

从业务角度来看,区块链的核心是运营效率(成本效率、时间效率、对多方协作的额外信任)和新的运营模式、新的业务方式(资产数字化)。

这就是为什么它可以用于各种各样的行业,例如:

金融

  • 清算和结算(零售和公司银团贷款)
  • P2P 贷款+ PSD 2.0
  • KYC——了解你的客户
  • 资产(股票、债券等。)发行(如图书建设)和管理
  • 数字货币
  • 抵押品管理

媒体

  • 数字资产的一级和二级市场
  • 众筹和版税分配
  • 媒体分发网络
  • 博彩/赌博(结算、开放博彩网络)

政府

  • 公共和私人登记(土地、汽车等)。)
  • 身份管理(反欺诈保护、个人数据的全球加密存储)
  • 法律和公证(智能合同、存在和所有权证明)
  • 投票系统

保险

  • 索赔管理
  • KYC
  • 延长的保证期
  • 流动保险(旅行延误补偿)

卫生保健

  • EMR —电子医疗记录
  • 索赔管理
  • 处方管理和用药依从性
  • 临床试验结果
  • 假药预防

其他人

  • IoT——物联网。执行合同协议(汽车和公寓租赁等)。)
  • 忠诚度奖励网络
  • 知识产权(专利、权利、著作权、真实性证明)

区块链路障

嗯,区块链仍然是一个早期的技术。考虑到这些障碍:性能、延迟、可伸缩性、安全性、隐私、资源浪费和成熟度,需要非常小心地应用它。

如果这篇文章对你有所帮助,请在下面拍手帮助他人——谢谢!

*Roman Stremedlovskyi**是一名对 Web 感兴趣的高级软件工程师。 市场调研前端开发。我们通过[LinkedIn](https://ua.linkedin.com/in/stremann)联系吧。*


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除