100行代码中的区块链
一切都应该尽可能简单,但不要简单
什么是blokchain?
从技术角度来看,这是一个分布式数据库,具有特殊功能,例如验证,存储和数据同步。
从业务角度来看,这是一个概念,它允许高效而可靠的对等事务,而无需*控制点。
与分布式数据库相比,区块链存在一些差异。 区块链具有“仅追加”操作,其中数据经过验证和签名。
玩家和框架
通常在谈论区块链时,我们也很容易混淆,我们也谈论我们正在尝试解决的问题。 在流行的基于区块链的项目(例如比特币和以太坊)中就是这种情况。 术语“区块链”通常与交易,智能承包商或加密货币等概念紧密联系在一起。
这使得了解区块链比必须完成的任务更加困难。 这就是为什么我将使用名为Chainpro的 100行代码浏览一个简单的区块链 。 我通常这样做是为了更好地了解事情的幕后工作原理,因此请随时检查“ 30行代码中的Flux架构 ”(称为Flypro)和“ 50行代码中的虚拟DOM ”(即Dompro) 。
建筑
区块链是一个区块链。 为了使事情尽可能简单而不简单,每个块都包含最必要的:索引,时间戳,数据,哈希和以前的哈希。 并且每个即将添加到链中的新块也应进行验证。
链是单例实现,您可以使用一个新的有效块来扩展它,并在有多个对等连接的情况下选择链中最长块的链替换它。
节点的重要部分是与其他节点共享并同步链。 当节点生成一个新块时,它会将其广播到网络 。 当节点连接到新对等节点时,它将查询最新的块。 当节点遇到索引大于当前已知块的块时,它要么添加该块的当前链,要么查询整个区块链。 没有自动对等发现。 手动添加的对等方的位置(= URL)。
用户可以使用HTTP服务器控制节点,以列出链中的所有块,创建一个具有用户给定内容的新块,列出并添加对等体。 应当注意,节点公开了两台Web服务器:一台用于用户qp控制节点(HTTP服务器),另一台用于节点之间的对等通信(Websocket P2P服务器)。 有关更多详细信息,请查看GitHub 。
用例和好处
从IT角度来看,blockhain是透明且不可变的分布式高可用性数据库,具有启用了密码的数据一致性验证,智能合约和原子交易。
从业务的角度来看,区块链与运营效率(成本效率,时间效率,对多方协作的额外信任)以及新的运营模式,新的业务方式(资产数字化)有关。
这就是为什么它可以用于各种行业的原因,例如:
金融
- 清算和结算(零售和公司联合贷款)
- P2P贷款+ PSD 2.0
- KYC-了解您的客户
- 资产(股票,债券等)的发行(例如簿记)和管理
- 数字货币
- 抵押品管理
媒体
- 数字资产的一级和二级市场
- 众筹和特许权使用费分配
- 媒体发行网络
- 游戏/**(结算,开放式**网络)
*
- 公共和私人注册表(土地,汽车等)
- 身份管理(防欺诈保护,全球加密的个人数据存储)
- 法律和公证(智能合约,存在和所有权证明)
- 投票系统
保险
- 索赔管理
- KYC
- 延长保修
- 交通保险(行程延误补偿)
卫生保健
- EMR —电子病历
- 索赔管理
- 处方管理和药物依从性
- 临床试验结果
- 防伪药品
其他
- 物联网—物联网。 执行合同协议(汽车和公寓租赁等)
- 忠诚度奖励网络
- 知识产权(专利,权利,作者,真实性证明)
区块链障碍
好吧,区块链仍然是早期的技术。 考虑到以下障碍,需要非常仔细地应用它:性能,延迟,可伸缩性,安全性,隐私,资源浪费和成熟度。
如果本文对您有帮助,请在下面拍手,以帮助他人-谢谢!
Roman Stremedlovskyi 是EPAM Systems的高级软件工程师。 对软件工程,公共演讲和社会架构充满热情。 在 Twitter , Facebook , GitHub 和 LinkedIn 上与我联系 。
From: https://hackernoon.com/blockchain-in-100-lines-of-code-50186a9a230