采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问老师Orderer节点为什么要存数据呢?是为了peer节点丢失数据时可以从orderer上获取吗?如果是是那为什么不从同一个channel的其他peer节点上获取呢?orderer节点一般是由哪一方部署呢?部署orderer节点对他来说有什么好处吗?orderer节点存了所有channel的数据岂不是知道了所有组织的交易信息?
这主要是你还没理解到orderer的作用,以及他在整个交易中所处的位置。
ORDERER主要用于交易排序,以及区块打包。他是可以不存储数据的,但是考虑一个问题,如果随后有一个新的组织加入到这条网络,他怎么跟上之前已经存在的数据呢?从哪里得到呢?从已存在的peer组织那里获取显然是不合理的,所以他存一份在他自己这里,你可以把他理解为缓存。这样peer与他异步交互也不互相拖累。
再者你说的orderer从peer那里获取数据,这个是把方向搞反了哈,先有排序打包,再有向peer分发,这是他的流程。
最后一个问题,orderer是保存了所有的交易数据,确实是所有的信息他都可以看,但是在实现里,他并没有把交易数据解包,他并不知道里面有什么东西,虽然他可以,但是他没有。他只负责把交易排好顺序,并打包成区块,仅此而已。
Orderer中的数据完全可以下下来硬解析,不也相当于看了所有channel的数据吗?
硬解析是可以的。但是这个功能是你开发的,并不在官方的协议里面。官方代码都开源,没有这个功能。
还有一个疑惑,新加入的某一个channel的组织为什么不能从这个channel的其他组织中同步数据呢?以太坊中的节点也是从全节点同步数据的,难道也不可信吗?
咱考虑个真实的使用场景: ABC三个公司组成一个网络,orderer节点放到一个公共的服务器上,但是各组织的peer都部署在公司内网。这种部署场景我相信应该是很正常,很普遍的吧。那这时候你怎么去其他组织的peer节点拉取信息呢?
非常感谢老师,那以太坊中新加入的节点同步数据难道没有您说的那种问题吗?还有老师我问下您后续还会补充fabric1.4与2.0版本的课程吗?我认为您讲的非常棒想继续学习。
老师,您好,还有一个问题orderer节点与peer节点存的数据有哪些区别呢?我在网上看到解释说orderer只存区块,而peer不只是存区块,还有状态,请问这个状态是什么呢?
后边的课程有讲解。我这里给你举个例子: 1+1+2+3+3=10。区块里存的就是前面的这些动作,而状态就是这些动作之后累计的最终结果10
谢谢老师,其中一点我可能没表述清楚:新加入的peer节点为什么不从同一个channel中的其他peer节点获取数据呢?orderer节点存的数据可以解析查看里面的具体交易吗?还是说系统规定他不能对数据包解析?如果可以解析那他还是可以查看所有交易数据,如果不能解析那orderer节点只存数据也就是被当成了一个日志,那部署orderer节点的组织岂不是很亏,白白浪费了存储空间?还有orderer节点为什么要存数据呢,为什么不临时存储等peer节点获取了区块后就把数据释放掉呢?
新加入的peer节点为什么不从同一个channel中的其他peer节点获取数据呢? 我说的peer指的是一个新的组织,之前没有peer存在的那种
orderer节点存的数据可以解析查看里面的具体交易吗?还是说系统规定他不能对数据包解析?如果可以解析那他还是可以查看所有交易数据,如果不能解析那orderer节点只存数据也就是被当成了一个日志,那部署orderer节点的组织岂不是很亏,白白浪费了存储空间? 是没有给他设计这样的功能的意思。至于为什么,你往后看,看完了应该能明白
还有orderer节点为什么要存数据呢,为什么不临时存储等peer节点获取了区块后就把数据释放掉呢? 同第一个问题,为了后来的组织加入
登录后可查看更多问答,登录/注册
兼顾区块链应用层和底层 进击区块链工程师
3.4k 6
2.0k 21
1.3k 18
1.2k 18
1.2k 16