IPFS 2018 Q4目标与关键结果

IPFS 2018 Q4目标与关键结果_第1张图片

我们试着用科学流程来构建我们工作,该流程基于季度目标和关键结果(OKR)。其中目标反映了具有挑战性但可实现的结果。结果是切实的、可衡量的工作产出。


IPFS 2018 Q4目标与关键结果_第2张图片

一、开发与支持

(一)项目

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来支持他们(博客文章或视频或都用)

与非政府组织合作,将其数据放入底层,并围绕提交视频和结构化数据的全球人员网络进行用户发现

你可能感兴趣的:(IPFS 2018 Q4目标与关键结果)