中年|火龙果财经:什么是“链上”和“链下”( 二 )
调用API发个交易是很容易的 , 而链上的开销就像房间里的大象 , 难以视而不见 。 作为开发者 , 需要正视“交易之轻和链上之重” , 积极“上链”的同时减少不必要的开销 , 找到平衡之道 。
*注1:常规联盟链节点参考配置:8核/16G内存/10m外网带宽/4T硬盘 , 不考虑“矿机”和其他特种配置 。 土豪随意 , 俗话说“钱能解决的问题都不是问题 , 问题是...”
*注2:本节暂未讨论“局部/分片共识” , 也不探讨“平行扩容”的情况 , 默认假定全网参与共识和存储
让“链上”归链上 , “链下”归链下
开销只是成本问题 , 而本质上 , 应该让区块链干自己最该干的事情 。 链上聚焦多方协作 , 尽快达成共识 , 营造或传递信任 , 将好钢用到刀刃上;那些非全局性的、无需多方共识的、数据量大的、计算繁杂的...通通放到链下实现 , 一个好汉三个帮 。
如何进行切割?在业务层面 , 识别多方协作事务和数据共享中“最大公约数” , 抓住要点痛点 , 四两拨千斤;在技术上 , 合理设计多层架构 , 扬长避短、因地制宜地运用多种技术 , 避免拿着锤子看什么都是钉子、一招打天下的思维 。
为避免过于抽象 , 下面给出几个例子 。
*注:每个例子其实都有大量的细节 , 考虑篇幅 , 这里做概要介绍 , 聚焦链上链下的区别和有机结合
文件能不能上链?
本文插图
这是个非常高频的问题 , 经常被问到 。 这里的文件一般指图像、视频、PDF等 , 也可以泛指大体量的数据集 , 上链可信分享的目的 , 是使接受者可以验证文件的完整性、正确性 。
常见的场景里 , 文件共享一般是局部的、点对点的 , 而不是广播给所有人 , 让区块链无差别地保存海量数据 , 会不堪重负 。 所以 , 合理的做法是计算文件的数字指纹(MD5或HASH) , 并与其他一些可选信息一起上链 , 如作者、持有人签名、访问地址等 , 单个上链信息并不多 。
文件本身则保存在私有的文件服务器、云文件存储、或者IPFS系统里 , 这些专业方案更适合维护海量文件和大尺寸文件 , 容量更高、成本更低 。 注意 , 如果文件的安全级别到了“一个字节都不能泄露给无关人等”的程度 , 那么应慎用IPFS这种分布式存储的方案 , 优选私有存储方式 。
需要分享文件给指定的朋友时 , 可以走专用传输通道点对点的发送文件 , 或者授权朋友到指定的URL下载 , 可以和区块链的P2P网络隔离 , 不占用区块链带宽 。 朋友获得文件后 , 计算文件的MD5、HASH , 和链上对应的信息进行比对 , 验证数字签名 , 确保收到了正确且完整的文件 。
这种方案 , 文件在链上“确权”、“锚定”和“寻址” , 明文在链下传输并与链上互验 , 无论是成本、效率、还是隐私安全都取得了平衡 。
怎么批量查询和分析数据?
本文插图
对区块链上的数据进行分析是自然的需求 , 比如“某个账户参与哪些业务流程、完成了多少笔交易、成功率如何” , “某个记账节点在一段时间内参与了多少次区块记账、是否及时、有否作弊” , 这些逻辑会牵涉到时间范围、区块高度、交易收发双方、合约地址、事件日志、状态数据等维度 。
目前区块链底层平台一般是采用“Key-Value”的存储结构 , 其优势是读写效率极高 , 但难以支持复杂查询 。
其次 , 复杂查询逻辑一般是在区块生成后进行 , 时效性略低 , 且并不需要进行多方共识 , 有一定的“离线”性 。
最后 , 数据一旦“上链” , 就不会改变 , 且只增不减 , 数据本身有明显特征(如区块高度、互相关联的HASH值、数字签名等)可以检验数据的完整性和正确性 , 在链上还是链下处理并无区别 , 任何拥有完整数据的节点都能支持独立的复杂查询 。
推荐阅读
- 中年|Carnot研发新型空气压缩机:噪音更低 寿命更长 成本更低
- 中年|中国-东盟区块链应用创新实验室揭牌
- 中年|交易所成黑钱胜地:“冻卡潮”背后的秘密
- 中年|波卡上线 现阶段是否值得投资?
- 中年|首台国产T3.20悬臂式掘进机在中信重工下线
- 中年|探索城市的“未来模样”,腾讯政务接下来这么干
- 中年|明年起禁用不可降解塑料购物袋、吸管!塑料袋发明者本来是为拯救地球
- AI财经社|谷歌云为何“放弃”中国市场?有人为它算了账,投入产出比太低
- BT财经|荒谬!中通快递竟然用假人充当安检员?穿戴整齐骗过监控
- AI财经社|发起反击战,华为对美国Verizon、思科和惠普发起侵权诉讼
