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)联系吧。*