5.3.3. 发送交易异常:tx verify failed, verify tx authentation failed, authentication error: authentication

   日期:2024-12-27    作者:mrhedejun 移动:http://3jjewl.riyuangf.com/mobile/quote/60894.html

长安链采用Go语言开发

5.3.3. 发送交易异常:tx verify failed, verify tx authentation failed, authentication error: authentication failed, [refine endorsements failed, all endorsers have failed verification]

智能合约目前支持Go、Solidity、RUST、C++、TinyGo

建议开发语言:rust,合约内可以引用大多数外部依赖(如:含随机数的不可用)。 建议开发工具:vscode,+ 插件:rust-analyzer

实际存储到leveldb的key为:contractName + “#” + key + field

长度限制: key:64、 field:64、 value:1M

且key、field符合正则,只能为英文字母、数字、点、横杠、下划线

两个参数的原因:一个逻辑性的命名空间概念,key作为namespace一般为有规律的值

不同组织间的CA证书可以使用同一个。但是不建议这样做,建议是一个组织一个CA证书。

证书的组织字段和trust_roots的org_id字段,无强制联系。

上链数据均共享。可以根据场景需要,采用混合加密、分层身份加密、同态加密、零知识证明等方式保护数据隐私

合约代码部署也是一个交易。发送给某个节点后,该节点会把交易广播到自己的网络中。其他节点也就有了这个交易了。交易上链需要各个节点达成共识,其他共识节点也会执行该交易。

可使用cmc工具可获取nodeid: https://docs.chainmaker.org.cn/v2.1.0/html/tutorial/cmc cert nid -h,是对证书的公钥进行SHA2_256,再base58编码后形成nodeid

长安链的用户标识体系分为以下两大类:

暂不支持,某条链只能选择其中一种模式。

长安链的组织证书即配置trust_root里面的证书,用来验证交易发起者或链参与者是否为该链的联盟成员。trust_root中可以配置组织根证书或组织中间证书。建议使用组织中间证书,以免根证书遗失或不慎泄露造成的不便。

长安链的节点证书分为两类。一类是TLS证书,一类是sign证书。TLS证书用于跟客户端建立TLS链接以及节点间通信。sign证书用于签名验签等,通常在创建交易和共识投票过程中使用。上述证书均需通过 签发获得。 通过建链脚本生成的节点证书为consensus和common两套,均包括上述TLS和sign证书。其中,配置使用的是consensus(共识节点),而common(同步节点)作为预留。

长安链的用户证书从角色上分为admin、client和light三类。

上述每种角色的用户从用途上分为TLS和sign两种,主要作用分别是:

证书可以通过 或者 生成的证书包括:

理论上没有上限

长安链支持外部证书。 外部证书即不是长安链CA(chainmaker-ca)和长安链证书生成工具(chainmaker-cryptogen)生成的X.509标准的数字证书,例如,由BJCA签发的证书。 外部证书和长安链证书在使用上没有差异。需要注意的是配置外部证书时,需要增加role配置项(长安链证书使用X.509的OU字段作为role使用),对应证书的角色信息。具体配置请参考:

长安链证书生成工具(chainmaker-cryptogen)生成的的证书;可通过配置文件指定; 长安链CA(chainmaker-ca)生成的的证书;可通过配置文件指定; 证书的有效期可以使用长安链CA证书服务在生成证书的时候指定。用户也可以按需延长证书的有效期。

证书的有效期可以通过openssl查看

证书解析后,根据以下字段可知该证书的有效期如下:

长安链证书可以通过长安链CA、证书生成工具cryptogen或外部CA进行链下管理,具体操作如下(如果使用外部CA,请参考服务提供商使用手册。如果使用长安链提供工具,可以参考:、 ):

长安链提供了cmc工具将证书的状态在链上进行同步管理,具体操作包括( ):

长安链的客户端与节点通信,节点间通信均建议使用TLS通信。 其中,客户端与节点间的TLS通信可选择是否开启,节点间TLS通信则必须开启。

用户可以通过修改配置文件选择是否开启TLS。(长安链仅支持选择客户端与节点间是否启用TLS链接)

将设置为disable即可关闭TLS 。 将的设置为 oneway(单向认证) 或 twoway(双向认证)即可开启TLS。

长安链支持国密TLS。如启用国密TLS,只需要使用国密的TLS证书即可。 国密TLS证书 可以使用 或者 工具生成。 chainmaker-crypogen: 需要修改配置 pk_algo: sm2。配置文件参考

链权限可以动态配置。长安链通过发起权限管理类系统合约实现权限修改。该系统合约交易符合当前权限策略要求,并经过共识和落块,则新配置就会生效。

长安链通过将该组织根证书从trustroot列表移除的方式实现将组织踢出网络的操作。 移除trustroot前需先移除共识节点(若有),需要先删除该组织的共识节点。 可通过cmc指令发起一个链配置系统合约调用进行操作,cmc命令参考

该组织下的节点不能入网参与共识,用户不能发起交易。

长安链把共识节点降级为同步节点,只需要在链上将该共识节点的nodeId从censensus列表中删除。 删除共识节点nodeid的cmc命令参考

BFT类(TBFT、HotStuff)共识、RAFT共识

DPoS共识

该操作与将共识节点降级为同步节点互为反操作,将该节点加入到consensus列表中,同时需要将chainmaker.yml配置文件的证书改为共识节点证书,并重启该节点。可通过cmc指令完成操作,指令如下:

TPS能达到10万级,并获得了信通院可信区块链联盟测试报告


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号