Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PFP33 墨客子链工具JavaScript集合 #55

Open
ApisChen opened this issue Dec 25, 2019 · 11 comments
Open

PFP33 墨客子链工具JavaScript集合 #55

ApisChen opened this issue Dec 25, 2019 · 11 comments

Comments

@ApisChen
Copy link

将墨客子链相关操作脚本化,并提供详细说明文档。用于丰富子链开发生态,方便开发者使用子链,也方便子链项目方私有化部署子链。

子链工具集完成的功能如表格所示,有些是功能已经开发完成,需要从其他开源代码中抽出并文档化,如vnode池、scs池相关操作,有些功能实现有难度,需子链开发方协助完成,如节点软件版本管理、scs performance等。

合计工作量50人日,项目开始便建立仓库,完成一个功能上传更新一个,预计总周期三个月。
子链js工具.pdf

@foreso-GitHub
Copy link
Collaborator

ApisChen好,看了下pdf,有一些问题需要讨论一下:

  1. 麻烦给出单项工作的工作量估计。
  2. vnode节点的版本升级是什么样的功能?需要解释得更清楚一些。
  3. 创建vnode节点持和scs节点池、登记vnode和scs,不就是一键发链的功能吗?应该都已经实现了。
  4. 子链监控模块在列表中的现状显示都已经实现,还需要工作量吗?
  5. 子链数据备份和恢复的功能请解释得更详细一些。
  6. 不太理解子链扩展性模块需要做什么。如果是添加scs节点到节点池,不是在scs监控和工具模块中已经有了吗?如果是从节点池选节点到子链,还有表现不好的节点扣除押金、被踢出子链,这些功能是子链底层已经实现的,这里到底还需要做什么?
    谢谢。
    @ApisChen

@Yelvabaoji
Copy link
Collaborator

我补充一下。

总体上,我们需要一个工具集,有两个目的,第一是为学习的人,提供比较清晰的样例。现在的deployASM 和deplyAST这些,注释不够清晰,详细,各种用词不同就会阻碍很多人或者让人学的时候花很多力气。走过一遍的人可能会觉得没有什么。第二,对于项目来说,我们现在还没有拿得出手的,甚至于有点像样的运维工具。那么这个工具集就是一个雏形。
至于工具长什么样,现在还不知道,最简单,对码农比较顺手的是单个的js可运行程序。比如说,我用deployASM做了一键发链,那么我把链给down了,下一次我用的时候,不想从头开始,而是用前一次的节点,因为这些节点已经充值完成了,vnode节点池也有了,scs节点池也有了。那么最好的选择,就是运行deploySubchain.js, 然后运行startupSubChain.js
1, vnode节点升级,这里还不清楚具体会碰到什么事,也许是不需要的。具体来说,如果项目方有一条子链,包括4个vnode节点,12个scs节点,现在墨客出来个新版本,必须要升级 - 那么这么升级?顺序是怎么样的?需不需要工具,如果不需要工具,也需要一个文档来说明这个流程。
2,创建vnode节点池,登记 vnode, scs,这些功能,我是实际碰到过的,因为不清楚,所以当我的链done了以后,就是从头开始一键发链的。实际上,我个人希望,从需要开始的地方开始。比如说,我想单独创建一个vnode节点池 - 我当然可以从一键发链里面截取这部分代码。在这里我就希望有独立的做好的createVnodePool.js, createSCSPool.js, regVnodeToPool.js, regScsPool.js这样的工具 - 已经验证过的,肯定正确的工具。因为如果用户自己去截取,做出来如果做不成功,那是完全懵逼的状态。
3,子链监控现在最大的问题,在于SCS节点的健康程度。通过log可以得知,有些SCS的performance比另外一些要好,比如说我添加一个monitor,开始同步数据,那么其中一些节点performance=5, 有一些performance=1。那么不知道有没有办法来获得各个节点的performance情况。也许有,也许没有。
4,子链数据备份和数据恢复,就是如果出现什么问题,乱块了,分叉了,或者什么情况出现了,有什么办法来恢复数据。如果我有几百万,甚至几千万在一条链上,链出问题了,怎么办?至少在工具,流程层面,需要系统性地考虑这些问题,提供一定的工具。这些问题,不去推进,永远会没有答案的。因为这是真实的,人家问这类问题了。
5,子链可扩展性一样,看起来现在什么都有,如果我们和项目方说,我们什么都有,你去功能模块里自己看吧(实际现实情况就是这样),逼到没有办法的当然自己去学去开发,然后另外一个团队一样的问题。其实这些也不难,就是整出完整的工具来,加上清晰的注解和说明。至少是个雏形。

@Yelvabaoji
Copy link
Collaborator

备注,以上小工具需要做完整的测试,希望把测试方式,策略写在里面。最完整的测试实际需要很多准备工作。
1,单机版 (测试链)
2,双机版 (2个或多个vnode,测试链)
3,生态节点池(生产链)

@Yelvabaoji
Copy link
Collaborator

那么以我自己做deploySubChain和startupSubChain来做例子。花了我至少4个小时(实际上后来就没有做成功,那么别人也有这种问题存在,而出现这类问题,要寻求帮助是比较困难的),一直怀疑是什么地方没有写对。那如果有独立的,已经验证过的工具,很直接就把可能造成问题的很多没有做对的因素给去除掉了。

@foreso-GitHub
Copy link
Collaborator

社区群中的一些讨论记录(20191226)

【技术委员会】foreso([email protected]) 9:46:10
@陈峰 @野驴阿保机 早,在issue上提了一些问题,麻烦看一下哈,谢谢。

【活跃】陈峰(664839088) 11:52:53
@Foreso 不一一回答了哈,这个提案主要从子链商业化角度考虑的,用于项目方用子链进行项目开发和维护的一些工具,目前这些功能大部分已经实现了,不过都比较零散在各种项目里,没有一个统一的入口去寻找这些工具,还有这些工具开源的文档不是很完善,项目方学习成本比较高。
在这个基础上,发起了这个项目申请,目的是将这些功能通过一个个js实现,并给出详细的说明文档,节约项目方对接成本。
工作量这块,不是单纯按照开发来评估的,主要是文档编写和改版工作,这是个持续的工作,最终效果是只要项目方照着文档来,就能完成功能。计划是三个月周期完成文档初版本和一次改版工作,预计工作量50日。

【活跃】陈峰(664839088) 11:53:05
@野驴阿保机

【技术委员会】野驴阿保机(1547377535) 12:36:12
@Foreso 我在项目下面添加了说明。

【技术委员会】foreso([email protected]) 12:46:50
@陈峰 @野驴阿保机 就是说除了代码,这个项目另一个主要的产出物是详细的说明文档,来帮助项目方更方便地理解和使用墨客。工作量很大一部分是这些文档的编写。但子链扩展性模块到底要做什么,我还是不确定。是说如何往子链里(不是scs节点池)增加和移出一个节点吗?

【技术委员会】foreso([email protected]) 12:49:40
如果是这样,这个功能直接放在scs监控和工具里好像更合适。

【技术委员会】野驴阿保机(1547377535) 12:56:51
扩展性就是增加和删除节点。包括V和SCS。那么,但是我还提了另外一种可能性。就是说,比如说我现在在生态节点池搭了链,开发也好,试运行也好,后面,比如说3个月以后,我希望切换去自己的节点,变成用自己节点的链--这个看起来有点难度

【技术委员会】foreso([email protected]) 13:00:22
理论上可以做到,把vnode池和scs池里的节点全替换成自己的节点就行。但这个不会是一个通用需求。

【技术委员会】野驴阿保机(1547377535) 13:01:03
扩展的另外一方面是和数据量和处理能力有关。有些可能没法停,开始用的节点比较差,后面数据跑出来,当然希望机器一点一点一批一批升级,比如说从2CPU升级到4CPU(同时考虑到价格下降趋势)

【技术委员会】foreso([email protected]) 13:01:31
另外你说子链可以增加不是scs池里的节点?

【技术委员会】野驴阿保机(1547377535) 13:01:35
所以这个替换过程应该是直接有需求的

【技术委员会】野驴阿保机(1547377535) 13:03:06
可以的和有,或者是说10支队伍能够做,是两个概念。其实我是仔细问了,这些技术上基本上都可以,要不然也不会动脑筋弄工具集

@foreso-GitHub foreso-GitHub changed the title 墨客子链工具JavaScript集合 PFP33 墨客子链工具JavaScript集合 Dec 30, 2019
@AnFengDe
Copy link
Collaborator

https://github.com/JCCDex/jcc-moac-tool 所有和节点交互的,这个工具全部一条指令就能搞好,所以我理解需要利用这个工具做个指令集合的说明

@foreso-GitHub
Copy link
Collaborator

项目表决通过,委员会评估项目工作量为一个人月。
另外有一个建议:写好文档不容易,但是让开发写出好文档也不容易, 不管哪种方式,最好文档更新到 readthedocs 或者网站上, 不是只在github中。
遇到问题可以随时和我们沟通。加油! @ApisChen

@foreso-GitHub foreso-GitHub added in progress/进行中 in progress and removed Waiting for review/等待投票 Something isn't working labels Dec 30, 2019
@AnFengDe
Copy link
Collaborator

支付记录

@AnFengDe AnFengDe added the Paid/已付 Good for newcomers label Dec 31, 2019
@Yelvabaoji
Copy link
Collaborator

这个项目还在做吗?进度如何?

@lospringliu
Copy link
Collaborator

@ApisChen , 报告一下进度

@zhinan
Copy link
Collaborator

zhinan commented Jun 28, 2020

@ApisChen ,进度如何

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants