4everland storage node
介绍
4EVERLAND数据节点层是基于IPFS之上的全球分布式协同节点网络,这些节点会组成一个大的IPFS swarm集群式网络。节点程序利用了基于TEE的可信验证的技术功能,其目的是验证节点的入网过程和程序可靠性。整个网络中的节点均需要承担以下角色功能:
1.pin一些特定的IPFS CID数据
2.验证网络中其他节点的程序功能
3.定期报告节点的数据存储情况
4.同步存储挑战报告给其他节点并相互验证报告数据是否合乎逻辑总的来说,节点的组织形式如图所示:
其中组成:PoSC of TEE:PoSC:Proof of Storage challenge, 是基于TEE实现的节点可验证程序Data Storage:指IPFS存储,二者是绑定关系PoSC介绍 网络中的节点协同式的存储一些特性的cid数据,因此需要PoSC(Proof of Storage challenge)机制去验证节点按照预期逻辑存储了这些数据。节点会按照预设的一些逻辑周期性的对节点的存储数据进行数据抽查机制。每一次这样的抽查机制都会形成一个报告并全网广播给其他节点,其他节点会验证该报告的合法性并进行本地存储,后续这些数据是对节点进行奖惩的重要依据。节点的入网流程整个节点的入网流程大致如下:
1.节点程序在TEE enclave区域生成一对公私钥对
2.生成Quote以及create_attestation_report并发送给IAS做认证
3.IAS将校验后的结果report返回
4.校验通过后将程序的mr_enclave值和链上的值作比较check_mr_enclave,如果不一致,程序直接返回
5.check_mr_enclave检查通过后将公私钥等信息储存
6.订阅IPFS消息通知主题
7.订阅链上cid存储合约,后续需要对这些CID做一些处理
8.监听其他节点通过出来的消息,例如报告的同步、公钥的索取、cid的同步消息等
9.对不同消息按照预定逻辑进行处理,消息字段类型大致如下
存储报告
节点程序会监听存储cid链上合约事件,触发相应的日志处理事件(例如insert、remove cid),节点会按照一定的“周期”生成存储证明报告,报告字段包括存储的cid样本数据、数据准确率等字段,同时,节点也会对该存储报告本地密钥签名后全网广播给其他节点。大致流程为: