DePIN
Decentralized Physical Infrastructure Networks - 去中心化物理基础设施网络
椭圆加密 - ECC
https://zhuanlan.zhihu.com/p/36326221 - ECC椭圆曲线加密算法:介绍
DHT
第一代
中央服务器。以文件服务器作为中心,典型的提供FTP的服务器。这种方式对服务器带宽压力和机器性能压力巨大。而且,这种单点集权的模式风险非常大,一旦出现故障,整个服务将停止。
第二代
泛洪式查询。网络中每一个节点都向他邻居节点询问是否拥有资源,如果没有,邻居继续向他的邻居询问。这种广播式的查询缺点明显,每次向外传播都是指数级,很容易就形成蝴蝶效应般的影响,对网络资源消耗非常大,而且容易形成网络风暴。以至于要对广播的广度和深度进行限制。
典型的例子是Gnutella,2000年的一种文件共享网络。广播广度被限制在5个邻居,深度不大于7跳。但5^7=78125这个数量也是很惊人。尽管它没有直接查询中心节点有效率,但它不再依赖一个中心化的索引节点。
第三代
BTtorrent-tracker。BT的网络架构中存在一个中心服务器Tracker,用来保存BT网络巾各节点的IP地址和端口等信息。下载节点刚加入网络时从Trakcer上获得其他节点的地址信息,同时在tracker中注册自己的信息成为一个peer。实现一个节点同时与多个节点交互。
第四代
Bttorrent-DHT。虽然第三代文件共享网络实现了P2P,但也有个缺点,如果tracker被屏蔽或者被黑,那么新节点无法注册,也无法获得peer列表,整个P2P网络就瘫痪。DHT(分布式哈希表)网络的出现,作为BT协议强而有力的拓展,解决了以上问题。
DHT全称 Distributed Hash Table,中文翻译分布式哈希表。它是一种去中心化的分布式系统,特点主要有自动去中心化,强大的容错能力,支持扩展。另外它规定了自己的架构,包括keyspace和overlay network(覆盖网络)两部分。但是他没有规定具体的算法细节,所以出现了很多不同的实现方式,比如Chord,Pastry,Kademlia等。BitTorrent中的DHT是基于Kademlia的一种变形。本文也是根据Kademlia协议描述DHT网络。
预言机
预言机要解决的是智能合约无法直接调用外部 API 的问题,智能合约为啥不能调用 API 呢?
合约 ABI
合约 ABI 是以太坊生态系统中与合约交互的标准方式,不论是外部客户端与合约的交互还是合约与合约之间的交互 - 以太坊官方文档定义
通俗的理解,包含两方面内容
ABI 是合约接口的说明
ABI 定义与合约进行交互数据编码规则
区块链应用常用架构
常见的区块链应用有:浏览器、钱包、Dapp 等,但通常开发架构都是一样的
1、全节点
全节点保存了链的所有原数据,是一切查询、展示的数据本源
2、索引服务
索引服务是从全节点取数据,根据业务需求将链上的原数据倒腾到自己的数据库中,提供查询入口,方便代码的编写
3、后端 API
后端包装数据库成 API,供前端调用
4、合约
5、前端
从后端 API 获取链上数据并渲染,Dapp 还需要实现和钱包、合约的交互
很多区块链提供了 Go SDK 和 JS 库,2、3 就可以不自己开发,直接使用
评论区