希望出CITA的入门教程

文档看胡了,什么是起链 啊?如果是说bin/cita create 是起链操作,那 --authorities 的“ 起链后,生成的 test-chain/*/privkey 文件为空,由各节点独自将自己的私钥填写进来。”这个空文件夹是怎么来的呢?而且create命令执行后,使用参数–nodes 产生的节点文件夹并不为空呀?
顺便问问,cita-cli key create返回的是管理员,那怎么去查询管理员的信息呢?之后比如用bin/cita create --super_admin 这里要用到管理员的私钥,我要是执行cita-cli key create之后,断电了,这个链的管理员是不是就成垃圾内容呢?
求大佬指点,求大佬带路,祝大佬年薪百万 :rofl:

你不说我都没注意到,“起链”算是区块链行业里的黑话?也不知道谁先开始这么说的,反正大家都这么说。
具体含义其实很好理解,就是“启动一条链”,可能跟“setup”有点关联,所以叫“起”链。

区块链作为一个分布式系统,操作肯定是比传统的IT系统要复杂。更重要的是,它是一个去中心化的系统,实际生产部署的时候是有多个参与方的。测试的时候,相当于一人分饰多角,肯定更乱。

所以关键的点要理清这里面的角色,以及每一步操作的时候扮演的哪个角色?

一个联盟链至少有两类角色:组织者和成员。其中组织者兼任管理员(Admin),成员是一组地位平等的参与方(比如A/B/C/D四家企业)。

第一步,组织者要把联盟组织给建立起来。最基本的,至少要知道联盟里面都有谁,各自的联系方式?
bin/cita create 就对应建立联盟组织,主要是集中生成一些配置文件。
--nodes 就是参与方的联系方式,实际中是ip或者域名,以及端口。
--authorities相当于参与方的帐号。为了方便测试,这个参数可以省略,相当于让组织者帮忙创建账户。但是这在实际生产环境中是不行的,因为这样组织者就掌握了所有参与方的账户,是不安全的。所以要各个参与方自己使用cita-cli key create创建账户,只把账户名报给组织者,自己保留私钥。等到后面链实际运行的时候,节点运行是需要对应的私钥的。所以各个参与方从组织者那里拿到的节点配置文件是不完整的,得把自己保留的私钥加进去(写入privkey文件),节点才能正常运行。
--super_admin 同样的,管理员也需要一个账户,如果他之前没有创建过账户,也同样需要使用cita-cli key create创建账户。

第二步,组织者把制定好的联盟组织架构的章程,人员名单等发送给所有的参与方。
对应的操作就是把bin/cita create创建出来的节点文件夹分发给各个参与方。
各个参与方运行节点:bin/cita setup,然后bin/cita start

第三步,各个参与方按照制定好的章程做好自己的事情。
对应的是:节点由各个参与方比如A/B/C/D四家企业各自本地运维。
所以开发测试的时候,要执行启动节点 0/1/2/3,敲一大堆命令。实际生产环境,是有四个公司的四个运维人员,每个人分别启动自己对应的节点即可。

所以实际生产部署中,每个节点是有各自的专门的运维人员的。

:sunglasses: 好形象,谢谢您~

「技术分享」区有一系列社区用户分享的入门教程: