请问各位:接口调用和块高度相关问题

麻烦有空的时候看一下,谢谢啦

1.想了解块高度的意义,默认3s出一个块,不管这3s内发多少交易,块高度貌似都是每3s加一,那么块高度的概念和意义何在?块高度就是块数量吗?这个过程是否和摩天轮的机制一样,每个仓到点了,就走,人上不满也就走了,人满了,剩下的人,去下一个仓

2.通过rpc发送交易失败,返回InvalidVersion,我在cita官网全局搜索这个词,只在协议升级那里面发现了,我是按照环境准备章节安装的v20.2.0发布件版本,请问这个是和我的发布件版本有关吗?还是和管理员的私钥有关,因为cita-cli可以正常交易,但有管理员私钥字段,rpc没有管理员私钥

3.解码的接口调用,目前只看到了cita-cli工具能解码,是否有rpc也可以进行解码?而且解码的过程是用公钥解码吧?为什么只要安装了cita-cli,获取了content,就谁的都能解开,我执行的是您基本操作实例里面的解码命令,也能解开你们的数据,而我们之间也没有交换公钥,并且您的数据也没有存证到我的链上,怎么会解开?

  1. 块高就是一个递增的序列号,按照 https://zhuanlan.zhihu.com/p/38920262 这个文章的角度,也可以理解为一个相对的时间。设置是3s一个块,但是系统有问题的情况下,比如网络故障了,可能会延长。所以块高在增加其实意味者区块链系统工作是正常的,类似一个健康检查,这也是为什么没有交易的时候也要出空块。否则无法判断,系统到底是出故障了,还是因为没交易所以没动?
  2. version是协议版本。发送的交易里的version字段的值要跟链上的当前值保持一致,否则就会报你遇到的这个错误。链上的当前version值可以通过 https://docs.citahub.com/zh-CN/cita/rpc-guide/rpc#getmetadata 接口查询。另外推荐通过我们的sdk来发交易,sdk会帮你自动填充一些字段。
  3. content是经过protobuf序列化的二进制内容,这里的解码其实就是反序列化,跟公钥什么的一点关系都没有。sdk里面不需要这个接口,里面默认就反序列化过了,拿到的返回值就直接是数据结构了。

针对您的回复,我有一些疑问,麻烦您看一下

1.每个块应该有一个默认的容量,请问这个默认的容量如何查看?假设现在3s出一个块,每个块最多能容纳10笔交易,那么我3s内,提交了15笔,那多出去的5笔是要等待吗?如果是3s内提交25笔呢?
2.那请问rpc的能否解决?我开启了enable_version,用rpc查版本,就是20.2.0,那rpc发送交易失败的问题能否解决,还是我得升软件版本?
对于您提到的sdk自动填充一些字段,我是不是用这里面的https://github.com/citahub/cita-sdk-java/blob/develop/docs/jsonrpc.md#appsendrawtransaction,appSendRawTransaction方法,就可以正常发送交易
3.那么content保密性并不高,因为任何人都能解开任何人的content数据,只要有content+cita-cli就行,重要的就是通过Hash获取content的过程?Hash是很重要的?