在介绍GitContract前,不得不提及开源项目。而说起开源项目,想必各位读者都能瞬间在脑海中闪现那些超人气项目,也相信不少开源开发者们都期望自己的项目能够直击痛点,一举成名。然而当今年代开源项目之多浩如烟海,想在其中脱颖而出极为困难,困难之处在于如何推广自己的项目。推广并非单调的写文章和解决痛点,还有很多其他途径。
以Github上的项目为主,我们能看到目前开源项目大致情况如下:
- 大厂背书
- 基金会背书
- 个人开发者
对于前两类,推广与公司战略相关连,不在我们的讨论范围内。
对于个人开发者而言,推广之痛如剥皮重生(或许有些人轻而易举)。笔者列举一些推广方式,当然还有很多奇人奇招:
- 文章推广:不要单纯写推荐文,还要给出技术文,更要在多个平台上发布,且题目需要切中要害且与正文有关。
- 投稿:这里投稿分为两种,一种是给一些公众号之类的公共媒体投稿,另一种是形如HelloGithub这类git仓库投稿。
- 与他人合作:如果你能与某些企业建立合作关系那是最好,不然也可以考虑与其他开源项目进行合作,这样你们的项目功能更多,实用范围更广。
- 补贴:这个方法有个前提,你的项目有不少人感兴趣,但是由于是个人开发者,大家不太敢用。这种情况下,可以考虑补贴式推广。比如制定补贴规则,然后让使用者们按照规则,利用你的项目进行使用或开发,然后项目主根据规则对开发出的成品进行评估和补贴。
对于前两类,开发者个人基本就可以搞定了,也不在我们的讨论范围内。
后两类中,我们可以发现,这需要双方互相协作。而双方的协作就会涉及到信任问题。这似乎再把问题引向区块链(但本文不是区块链相关文章)。诚然,区块链确实解决了一定的信任问题,然而对于这种小规模合作使用大规模武器似乎过犹不及。
不知道有没有人思考过,git其实也是一种记账。它们都有如下特性:
- 公开性,任何提交内容和提交历史都可以在公开仓库中看到
- 串行化,基于commit的串行化
我们会发现git缺乏的是:公开的多方认可问题,即拜占庭问题。
然而,对于这种小规模的合作而言,事实上协商只有两方参与,只要双方商定,别人认可与否并不重要。因此,我们需要的是一个可存放、可公示、可追溯的合约平台,只是用来公开证明双方的合作。
而这个需求,一个Git仓库就可以解决了——这就是GitContract。
GitContract地址
GitContract主要用于解决以Github账号为主体的合约签订问题。即合约双方不需要提供真实姓名或公司名称,只需要提供Github账号。
GitContract是一个Github上的公开仓库,并且保证永久公开、永不回滚、永不分岔,这样可以保证任何合约的模版发布以及签订都会一直存在。
合约模版的发布与合约签订的流程都可以从commit和pull request中判断是否是双方同意的,这与GitContract要求的签订流程相关。
简单举例一个场景并给出简化签约流程。
场景:账号A与账号B达成某个项目合作,双方项目之间互相兼容并使用,且在项目文档中列出合作伙伴以及链接,并承诺在一年内维持这一合作关系,而不会寻求其他替代项目合作。
签约流程:
- 发起方(假设为A),将合作条款写成合作模板提交到GitContract草案中。
- 发起方A可与B对草案再次商定,并确认无误后将草案转为正式合约模板。
- 参与方B针对草案编写合约文件,并将文件作为草案提交GitContract。
- 发起方A检查B提交到合约草案无误后,将该合约转为正式合约。
完成此4步骤,方认为合约成立。
更多细节,大家可以访问GitContract仓库查看其文档规范。
感谢阅读!