微众区块链观察节点的架构和原理 | 科普时间

践行区块链公共精神,实现更好的公众开放与监督!2023年12月,微众区块链观察节点正式面向公众开放接入功能。从开放日起,陆续有多个观察节点在各地运行,同步区块链数据,运行区块链浏览器观察检视数据,社区也对这一形态的开放网络开展了热烈的讨论。本文将从技术和网络结构的角度去剖析,如何通过观察节点进行信息的读取、查验和监督,实现数据透明。

  什么是观察节点

区块链的基本要旨是通过密码学算法构建一条不可篡改、不可否认的数据链,所有数据都环环相扣,所有的交易数据可追溯、生成的结果可验证。更重要的是,区块链网络具备分布式和多方参与的特征。因此,用户可以部署自己的节点,接入到区块链,获得链上数据,无需依赖中心化服务,在本地即可验证数据。

在微众区块链体系中,用户可部署的节点有几种:

最轻便的是轻节点。轻节点的原理是仅同步区块头数据,区块头数据包含了区块的可验证信息,用于便捷验证区块包含的交易及状态存在性、真实性。但轻节点并不会在本地保存执行所有的交易,一般用于仅需部分验证交易的场景。

功能最完整的是共识节点。共识节点会同步所有区块和交易数据,并在本地执行验证,且能生成新区块或对其他共识节点生成的新区块投票验证。在公众联盟链体系里,共识节点普遍由参与业务决策过程的重要核心机构部署。作为区块的生产参与者,这些机构对共识节点的运行质量、响应速度要求非常高,否则链的可用性都会受到严重影响。

居于其中的是观察节点。观察节点拥有所有的历史数据,即从第一个创世块开始,到最新的区块,包括区块里的交易,都忠实的、不折不扣的被同步读取和存储到本地节点上,并通过链上智能合约虚拟机引擎,执行交易所部署和调用的智能合约,在本地计算交易和验证结果。同时,观察节点并不参与共识过程,用户只需一台普通云服务器、充足的硬盘空间,即可运行观察节点。

观察节点给了用户更高的自由度,用户可以随时运行节点,同步到最高的区块高度,然后对链上数据进行分析。顾名思义,观察节点就像冷静、客观、全面的观察者,具备了成为链上应用监督者的基本条件。

微众区块链的公众联盟链观察节点让公众广泛接入,将数据和交易运行机制完整的交给用户,彰显了开放、透明的姿态,同时这也是在技术架构上的一个创新实践,在系统的完备性、稳定性、安全性等方面都是很好的多方验证。  

  基于观察节点能做什么  

区块链数据的基本数据要素是区块,区块里包含交易列表,每个交易或是部署智能合约,或调用智能合约。也就是说,链上智能合约代码,以及对合约的调用输入参数,都包含在区块里。观察节点包含了完整功能的智能合约虚拟机,一边同步区块和交易列表,一边通过虚拟机执行指令,将智能合约的数据结果保存下来,并通过密码学算法验证执行结果。

对于常见的存证应用来说,交易输入的是存证证据Hash、简要说明、签名列表等,并在链上忠实存储下来,打上时间戳,后续即可通过存证合约接口去验证某个证据是否存在,是否完整,是否在某个时间产生。

对于账目类应用来说,交易输入的往往是账目的转出方和接收方,以及转账金额。智能合约会计算交易发起方的用户身份,如是否为真实的转出方账户所有人;转出方的余额是否充足;转账结束后,双方的余额是否达到事务性的有增有减,不能只增不减,也不能只减不增,而是收支平衡,账目正确。

对于更复杂的合约逻辑,同样可以根据合约接口的输入输出,以及对照智能合约的逻辑,验证运行过程是否出错,是否完整,是否符合应用规则。

更重要的是,既然节点同步到了所有的交易历史,如有必要,可以从创世块里第一个相关的交易开始,一步一步跟踪执行状态,分析整个过程是否有错漏,是否有不合适的交易方,是否有异常的交易频率等。

只要熟悉链上某个应用的逻辑,或者是参与到该应用的用户,关心自己的数据完整性、真实性,都可以通过观察节点验证它,同时也是对业务运行过程的监督。

当前版本的公众联盟链观察节点包含了一个友好的区块链浏览器,它提供友好易用的界面,供用户查看区块、交易、智能合约信息,同时参与到链上某个应用的用户,可以通过应用主页里的验证工具,直接去验证自己的数据。

更进一步,基于公众联盟链的完整数据,开发者可以开发更具风格的交互,为用户提供更多维度的数据管理和查询分析工具,打造更加场景化的应用,创造出更有生命的生态。

  观察节点的设计考量

有社区用户关心,所有的数据都打开给公众看,会有哪些挑战?

首先,公众联盟链的要旨是,兼顾服务公众和开放可信。公众联盟链上的应用本身就秉承开放理念,提供的是公众可使用的服务,业务规则透明,数据可供公众使用和验证。更重要的是,和隐私相关的数据明文并不上链,而是用密码学算法生成随机的数据指纹,做为脱敏的标识,供合约运行使用,无需担心链上数据会泄漏用户身份等敏感信息。

同时,公众联盟链集成了区块链公有链和联盟链两大技术路线的优势,兼顾实现可信基础设施建设的特性,其中联盟作为链的属主和运营方;政府或权威机构则发起设立联盟治理委员会,作为链上节点承担公众联盟链的治理工作;而公众用户则可以通过网络访问基于区块链的Web3.0服务,并同时通过轻节点、观察节点接入区块链网络进行信息的读取、查验和监督。在整个体系中,角色和权限有清晰的划分,各司其职,有可靠的链上角色权限控制机制进行鉴权管控,拒绝未授权的访问,为网络的稳定运行提供了保障。

最后,公众联盟链观察节点代码本身是开源的,这进一步体现了开放和可信的精神,也给予开发者们更大的创作空间和完备的技术基础。

观察节点的版本和功能依旧在迭代中,我们会在保证数据隐私和系统安全的基础上,持续进行开放透明的创新实践。         

  结语

公众联盟链观察节点体系已经迈出坚实的第一步,我们期待有更多的应用、更多的用户参与、更大体系的网络规模,如此更能彰显开放网络的立体效应。

本次面向公众开放的dapp有数据鉴证、数字内容共创平台、植樾,后续更多dapp将陆续开放,我们也会和社区开发者、以及参与到这些应用的用户一起,持续打造更友好的、功能更丰富的浏览器以及链上应用验证工具,基于公众联盟链体系开展更多的应用探索,发展更可信、更广泛的应用生态。

延伸阅读         

fd4817fd50b2fcc04021210b7532c4c9.png

微众区块链观察节点正式开放,一文看懂如何接入

16bf184fd9bc190edf414e84775c0ea4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/293035.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32 内部 EEPROM 读写

STM32 的某些系列 MCU 自带 EEPROM。笔者使用的 STM32L151RET6 自带 16 KB 的 EEPROM,可以用来存储自定义的数据。在芯片选型时,自带 EEPROM 也可以作为一个考量点,省去了在外接 EEPROM 的烦恼。 下面简单介绍下 STM32 内部 EEPROM 的读写流…

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】第一套区块链系统部署与运维

第一套区块链系统部署与运维题目 环境 : ubuntu20 fisco : 2.8.0 子任务1-2-1: 搭建区块链系统并验证 题意: 要求搭建一条四节点的区块链系统,我们选择使用fisco作为此次测试的链子 我们使用build_chain.sh进行构建单机四节点,并且使用官方的默认端口【正式比赛大概率不…

Python 操作 JMeter 探索:pymeter 实操指南

概要 JMeter 是一个流行的性能测试工具,用于测试 Web 应用程序的性能和负载。它通常与 GUI 一起使用,但如果您想在自动化测试中集成 JMeter,或者以编程方式创建和运行测试计划,那么 pymeter 库将是一个强大的工具。本文将介绍如何…

快速、准确地检测和分类病毒序列分析工具 ViralCC的介绍和详细使用方法, 附带应用脚本

介绍 viralcc是一个基因组病毒分析工具,可以用于快速、准确地检测和分类病毒序列。 github:dyxstat/ViralCC: ViralCC: leveraging metagenomic proximity-ligation to retrieve complete viral genomes (github.com) Instruction of reproducing resul…

大数据StarRocks(三) StarRocks数据表设计

1. 列式存储 1.1 列式存储方式有以下几个优点: 1.快速的数据查询 由于数据是按照列进行存储的,所以查询某个列时只需要读取该列所在的块,而不是整行数据,从而大大提高了查询效率。 2.压缩效率高 由于列式存储的数据块中只有一…

LLM Agent之再谈RAG的召回信息密度和质量

话接上文的召回多样性优化,多路索引的召回方案可以提供更多的潜在候选内容。但候选越多,如何对这些内容进行筛选和排序就变得更加重要。这一章我们唠唠召回的信息密度和质量。同样参考经典搜索和推荐框架,这一章对应排序重排环节,…

Flink实时电商数仓之旁路缓存

撤回流的处理 撤回流是指流式处理过程中,两表join过程中的数据是一条一条跑过来的,即原本可以join到一起的数据在刚开始可能并没有join上。 撤回流的格式: 解决方案 定时器:使用定时器定时10s(数据最大的时间差值&am…

【数据结构—二叉树的链式结构实现】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、二叉树的存储结构 二、二叉树链式结构的实现 2.1手动构建一课树 2.2二叉树的遍历 三、二叉树链式结构的实现 3.1前序遍历(递归) 3.2中序遍历(递归) 3.3后序…

如何成为ChatGPT 优质Prompt创作者

如何提问? 我想让你成为我的Prompt创作者。你的目标是帮助我创作最佳的Prompt,这个Prompt将由你ChatGPT使用。你将遵循 以下过程:1.首先,你会问我Prompt是关于什么?我会告诉你,但我们需要 通过不断的重复来…

LCR 176. 判断是否为平衡二叉树

解题思路: class Solution {public boolean isBalanced(TreeNode root) {return recur(root) ! -1;}private int recur(TreeNode root) {if (root null) return 0;int left recur(root.left);if(left -1) return -1;int right recur(root.right);if(right -1) …

使用通用MCU实现无人机飞行任务的快速二次开发

使用通用MCU实现无人机飞行任务的快速二次开发 ---TIDronePilot外部控制offboard模式介绍 无名小哥 2024年1月1日 传统飞控二次开发方法和主要存在的问题简介 通过对前面几讲中《零基础竞赛无人机积木式编程指南》系列开发教程的学习可知,在以往TI电赛真题的学习…

2023APMCM亚太数学建模C题 - 中国新能源汽车的发展趋势(2)

五.问题二模型建立和求解 5.1 问题二模型建立和求解 针对题目二,题目要求收集中国新能源电动汽车行业发展数据,建立数学模型描述,并预测未来十年的发展。由于在第一文中,我们已经收集了一定的新能源行业发展数据&…

Quartus II 13.1的安装及使用

Quartus II 13.1的安装及使用_quartus13.1-CSDN博客1.3 Verilog 环境搭建 | 菜鸟教程 学习 Verilog 做仿真时,可选择不同仿真环境。FPGA 开发环境有 Xilinx 公司的 ISE(目前已停止更新),VIVADO;因特尔公司的 Quartu…

【React系列】JSX核心语法和原理

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. ES6 的 class 虽然目前React开发模式中更加流行hooks,但是依然有很多的项目依然是使用类组件&#x…

imgaug库指南(三):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里,数据是模型训练的基石,其质量与数量直接影响着模型的性能。然而,获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此,数据增强技术应运而生,成为了解决这一问题的…

14.7-时序反馈移位寄存器建模

时序反馈移位寄存器建模 1,阻塞赋值实现的LFSR,实际上并不具有LFSR功能1.1.1,RTL设计,阻塞赋值1.1.2,tb测试代码1.1.3,波形仿真输出,SIM输出,没实现LFSR1.2.1,RTL设计&am…

【导出与导入Virtualbox虚拟机和启动连接openGauss数据库】

【导出与导入Virtualbox虚拟机和启动连接openGauss数据库】 一、导出虚拟机二、导入虚拟机三、启动数据库四、使用Data Studio连接数据库 一、导出虚拟机 选择关机状态的虚拟机 -> 管理菜单 -> 导出虚拟电脑 点击完成后,需要等待一小段时间,如…

神经网络的核心:帮助新手理解 PyTorch 非线性激活函数

目录 torch.nn子函数非线性激活详解 nn.Softmin Softmin 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.Softmax Softmax 函数简介 函数工作原理 参数详解 使用技巧与注意事项 示例代码 nn.Softmax2d Softmax2d 函数简介 函数工作原理 输入…

Java异常简单介绍

文章目录 1. 异常分类和关键字1.1 分类1.2 关键字 2. Error2.1 Error定义2.2 常见的Error2.2.1 VirtualMachineError2.2.2 ThreadDeath2.2.3 LinkageError2.2.4 AssertionError2.2.5 InternalError2.2.6 OutOfMemoryError2.2.6.1 OOM原因2.2.6.2 OutOfMemoryError会导致宕机吗 …

Python(wordcloud):根据文本数据(.txt文件)绘制词云图

一、前言 本文将介绍如何利用python来根据文本数据(.txt文件)绘制词云图,除了绘制常规形状的词云图(比如长方形),还可以指定词云图的形状。 二、相关库的介绍 1、安装相关的库 pip install jieba pip i…