我们试着用科学流程来构建我们工作,该流程基于季度目标和关键结果(OKR)。其中目标反映了具有挑战性但可实现的结果。结果是切实的、可衡量的工作产出。
一、开发与支持
(一)项目
3、建立更好的组织,从而为整个团队提供优秀的设计(不知道为什么没有1、2)
正式组建设计工作组,为其成员命名,明确工作组的工作范围列表
第四季度该团队要成长出1名视觉设计师(Agata +1)
第四季度该团队要成长出1名交互/前端设计师(IPFS GUI)
(二)JavaScript实现
1、Go IPFS的可行替代方案
缺省情况下启用DHT并与Go IPFS DHT互操作
在pubsub和DHT上运行IPNS
完成Base32 CIDv1迁移
使JS IPFS守护进程成为一个(或更多)的IPFS网关节点
JS IPFS在与Go IPFS相同的端口上运行,并使用相同的二进制名称
一个IPFS版本管理器CLI工具,以在go、js或其他任何版本之间切换,就类似nvm/nave
默认注册表npm-on-ipfs,让IPFS开发人员和CI用于安装npm依赖项
一个repo迁移工具,使JS IPFS可以自动升级旧的repos
2、可衡量的比以前更快更小的版本
JS IPFS能够以像Go IPFS一样(至少75%)的速度传输类似ImageNet的大型数据集
IPFS的浏览器捆绑包的大小不超过1.5MB(gzipped)
随着时间的推移测量浏览器捆绑包的大小,如果超过1.5MB则发出开发者警告
发布一个网站,以直观地跟踪各个JS IPFS历史版本的基本性能配置文件
3、稳定和未来的证明
把错误代码添加到源自JS IPFS的直接错误的统计中
改善测试质量,删除重复,覆盖率提高至少5%
js-ipfs-unixfs-engine被分解为更小的模块,以实现更好的可维护性、可测试性、可靠性和复用性。重构的模块是JS IPFS版本的一部分
识别从JS IPFS(例如js-ipfs-mfs)中提取的候选模块,并达成一致
建立对infra的持续部署要求,使CD成为所有PL JS项目的选项。对IPFS、IPLD、libp2p这3个项目持续部署
最终确定unixfs-v2的规范草案
(三)Go实现
1、go-ipfs能够轻易处理大型数据(1TB ++)
通过快速以太网传输1TB数据耗时低于48小时
通过快速以太网传输200GB分片数据耗时低于12小时
go-ipfs的GraphSync原型实现
有一个更好、更高性能的数据存储模块(类似Badger或更好的)
重构固定数据的结构,以支持大型数据或多文件
2、带宽使用率显着降低,且易于持续控制
用户可以选择不提供所有的IPLD节点(而是仅提供根哈希)
改进Bitswap以减少干扰、减少带宽使用(减少重复块)并提高吞吐量
3、让编程方式使用go-ipfs的过程成为一种乐趣
完成并发布Core API,使得go-ipfs包的导入更容易
go-ipfs-api公开新Core API
使用新版Core API的go-ipfs守护进程、网关和cmds库
弃用旧版的非Core API,并更新go-ipfs README上的图表
4、go-ipfs成为一个维护良好的项目
在Stebalien之前,每个有意义的PR都会先由他人审查。
更新Go贡献指南,以满足Core Devs的预期,并帮助新贡献者(例如包含PR模板)
提出与“引导维护者协议”等效的规则,由团队审核、合并和实施
https://waffle.io/ipfs/go-ipfs上的每个问题都会被分类(在https://github.com/ipfs/pm/blob/master/GOLANG_CORE_DEV_MGMT.md之后进行审核和标记)
每个软件包都有在Jenkins上运行的测试和测试+代码覆盖层
能将软件包与子系统链接到工作流的最新的IPFS Go实现架构图
5、gx成为Go 代码贡献者们青睐的工具
您可以更新传递依赖的次级版本,而无需更新中间依赖关系
go-ipfs中不重写导入(理想情况下,同步和构建皆如此)
6、从第三季度开始、已付出了卓越努力、仍是高优先级的工作
缺省情况下支持并启用base32
go-ipfs获取unixfsV2规范+原型
r+w IPFS跨平台安装
(四)IPFS GUI/UX
1、核心IPFS功能直观且易于访问
一位全职UI / UX设计师入职
发布重新使用Web UI组件的IPFS Desktop v2.0
默认自动更新的,面向Windows、OSX和Linux的IPFS Desktop签名安装程序
在Web UI、Desktop和Companion中提供share.ipfs.io
实现Web UI的稳定月度发布,包含修复和新翻译的
实现Web UI可用性测试计划和5个记录的测试会话
发布Web UI和Desktop的博客文章和视频解释器,并在docs.ipfs.io中建议安装Desktop
实现Web UI与IPFS群集一起使用,并显示群集的特定信息
2、给予开发人员权限来创建优秀的、新的IPFS用户界面
发布UI使用手册,其中包含组件和常见的API使用示例文档。
Web UI文件浏览器被提取为独立组件,可以在网关和其他Web应用程序上复用。
在Web UI中添加选择加入、匿名分析收集的机制。
3、通过GUI推动对IPFS的理解和采用
在Web UI中可视化DHT和bitswap信息,并帮助开发人员优化内部。
(五)IPFS Cluster
1、Cluster可编排大量数据
解析用于分片的TO-DO(#496)
在IPFS上登陆的深度为1的固定
2、系统管理员能够轻松部署并检查Cluster
我们可以在Graphana中显示一些自定义和非自定义指标
我们添加完代码跟踪工具,并且可跟踪至少一条公共代码流
适应性警报更智能地触发警报并重新固定
Cluster的官方EKS部署及其周围的所有自动化代码
3、Cluster可以扩展到成千上万个节点,并协同完成文件固定
团队获得有关CRDT、当前实现(Peerpad)和分布式DB(Orbit)的知识
Cluster的基于CRDT的共识层的第一个原型
无领导重固定(删除对共识组件之外的Leader()的最后依赖)
4、包含所有问题答案的文档
至少记录一个部署方法
第二轮插图
重组网站以阐明Cluster概念和常见问题解答
5、通过与主要合作伙伴的共生合作来定义Cluster产品
至少一份充满图片的Cluster用户旅程,并为该用例确定所有的产品差距
至少一份针对第三方用户的Cluster部署,以帮助他们备份IPFS上的数据
与web-UI团队协作,为IPFS Web UI添加Cluster功能
6、Cluster由高技能和积极性的团队组成
该团队在第四季度新增1人
定义适用范围明确的、可切换到外部团队或全新贡献者的3个工作包
(六)基础结构
1、提供强大的网关作为服务(go和js)
将网关部署到可靠的云提供商
通过<=一个文件更改,让网关可扩展到任意区域
按需分段环境可用于测试升级和部署更改
使网关日志可观察,并在服务异常时产生警报
网关可用作Tor的隐藏服务
2、基础团队为其他团队和社区提供支持
其他团队可以阅读基础团队的工作需求、轨迹,以及在网页上确认故障单进度
其他团队可以阅读有关如何在网页上使用托管固定服务
制定待处理技术的优先计划,为团队规划提供指导
公开100%的基础结构供应代码
在网页上提供有关如何托管IPFS网关的教程
3、发展团队并提高透明度
新的基础结构专职工程师入职
跟踪并持续提出KPI
可在网页上找到清单和服务状态
4、巩固CI作为一项团队服务
为已知的公共和私有仓库提供CI服务支持
团队可使用常见CI / CD工作流的模板和文档
(七)开发团队支持
(无)
二、社区、教育和使用
(一)社区
1、为IPFS创建一个教育社区
记录有关NodeSchool社区的讨论。
协议学院:发布本地章节创建指南
协议学院:创建去中心化数据结构教程
协议学院:在现有教程中使用最新的IPFS / IPLD API(新的CID())。
协议学院:GitHub组织结构,支持本地章节。
协议学院:使得网站设计/布局支持本地章节和课程树。
协议学院:确认是GitHub仓库的本地章节将立即呈现在网站上。
2、明确、定期地与社区沟通正在发生的IPFS事件
新闻通讯:自动化突出贡献者
新闻通讯:每周一致的电子邮件
新闻通讯:突出显示预定好的、即将到来的演示
3、可访问的IPFS新贡献者体验
定义“攻击计划”以改善IPFS新贡献者体验。
通过预定演示领导每周的IPFS电话会议。
三、支持特定用途的持续性努力
(一)动态数据与功能
1、PeerPad成为IPFS Org上Notetaking的默认设置
PeerPad的项目经理入职
PeerPad使用的CRDT(peer-crdt)是正确的(所有节点必须始终收敛到相同的最终状态)
完成新的Peer Pad架构,并进行记录、审查并实施
PeerPad满足标准IPFS All Hands的需求(参见写作说明)
PeerPad成为JS Core Dev Meetings使用的Notetaking工具
PeerPad成为Web Browser Meetings中IPFS使用的Notetaking工具
PeerPad成为Go Core Dev Meetings使用的Notetaking工具
PeerPad成为IPFS All Hands使用的Notetaking工具
Peer-star的产品经理入职
2、PeerPad的状态由IPFS固定功能的基础结构保留
PeerPad使用IPLD作为其底层格式(通过peer-star-app)
在Pad中完成的每个操作都被固定,并且监控这些引脚
Pad可以完全由固定状态启动
3、PeerPad快速且可扩展
在libp2p之上实现了自定义CRDT同步协议(用于peer-star-app)
通过Rendezvous libp2p服务发现对同一个Pad感兴趣的Peer
Circuit Relay成为PeerPad使用的Transports之一
10个对等协作的同步时间小于5秒,每秒10个操作
节点在发现同一个Pad中合作的其他节点时,耗时不超过5秒
WebRTC成为PeerPad使用的Transports之一
4、Discussify成为一个可用的应用程序,可很好地实现宣布功能
提交v0版讨论
Peer-star-app支持协议中的身份和身份验证,“带来你自己的身份”的风格
发布v0版身份管理器
开发peer-star-idm:发布一个将peer-star-app的身份与身份管理器整合在一起的软件包
将身份管理器集成到Discussify中
(二)Web浏览器中的IPFS
1、浏览器插件以稳定而直观的形式展示IPFS功能
实现WebUI和配有Companion的新共享App在没有DNS的情况下工作(在离线/ LAN模式下)
用户可以定义多个IPFS后端并在它们之间切换
通过Companion随附的公共HTTP网关来实现哈希和CID验证有效负载的加载
2、确保在浏览器环境中为Web开发人员提供流畅的体验
window.ipfs 2.0准备就绪,并发布文档记录、博客文章
切换base32 CIDv1作为整个IPFS生态系统的默认值
Firefox和Chrome中的ipfs.add支持上传5GB文件,而不会崩溃或降低用户界面的速度
在docs.ipfs.io中记录IPFS寻址和像“网关”一样的相关概念
3、浏览器开发人员正在满足分布式Web的要求
在arewedistributedyet.com上发布博客、叙述、时间表
Chromium允许webextension注册没有“web+”前缀的ipfs://和dweb:handlers
在Firefox Nightly中发布至少一个libdweb API
默认情况下,Companion和嵌入式go-ipfs将随着基于Chromium的Brave一起提供
libweb相关工作的C / C ++贡献者入职,从而支持Firefox和Chromum / Brave
(三)去中心化数据管理
1、使去中心化数据管理工作组的存在正式化
正式组建工作组,为其成员命名,创建一个repo,并列出工作组所涵盖的工作
准备好一切以聘请GLAM专家(编写招聘计划和职位描述;组建招聘委员会;确定招聘地点;从招聘工作组获得签字)
创建一个表达问题陈述的文档,并将其链接到待处理和可能措施
声明此工作组的KPI草案
2、减少对DDS相关用户采用熟悉的阻止程序(即是,简化可简化的事,使难事可能解决)
针对潜在采用者的“DDS on IPFS”,为在线资源开发和消息
与社区工作组合作,围绕DDS用例编写案例研究
取得IPFS实施团队的承诺,以实施允许列表和阻止列表
发布信息资源,说明如何跟踪IPFS的版本历史记录
发布信息资源,解释IPFS和X(Dat、Cluster、X)之间差异的
发布信息资源,解释如何使用IPFS上的元数据(从libraries社区中查找元数据创建方面的专家,并将其与IPLD团队联系以编写访客博客帖子)
围绕我们对策略,允许列表,阻止列表等的立场,发布明确的消息
发布一份文件,说明如何应用去中心化工具来保存公共记录,并解释它将如何运作
3、加深我们对DDS需求的理解,并将其转化为实施指南
通过用户访谈、与关键合作伙伴建立关系的方式,为该用例确定所有的产品差距,至少要充分说明GLAM的用户旅程
通过用户访谈、与关键合作伙伴建立关系的方式,为该用例确定所有的产品差距,至少要充分说明研究数据网络的用户旅程
将这些旅程联系在一起,并传达这种统一叙述,展示我们将如何使用IPFS来支持他们(博客文章或视频或都用)
与非政府组织合作,将其数据放入底层,并围绕提交视频和结构化数据的全球人员网络进行用户发现