【区块链开发公司】《精通门罗币》:全球第三大加密货币开发社区是怎样炼成的
本文为《精通门罗币》系列第六章,点击可查看系列文章
6.1 社区文化
6.1.1 开放
虽然门罗币本身是隐私币的典范,但其社区是建立在透明与协作这一核心价值观之上的。用户、开发者和研究者所在的中继聊天频道(IRC)也是完全开放给公众的。你也可以通过Slack、Mattermost和Taiga等平台与门罗的用户和开发者交流互动。所有重要的会议记录都可以在官方网站上找到。
门罗开放协作的文化需要从门罗的渊源讲起。门罗源自ByteCoin的代码分叉,而Bytecoin的开发者一直保持着神秘的身份,制定决策也全然无视社区的反馈。这不仅导致了开发出错,更过分的是其引火自焚的预挖设置。
门罗社区在对幽暗隐蔽的ByteCoin进行代码分叉的那一刻诞生,在去中心化、协作性和多元化的光辉下成长。这无疑在方方面面促进了门罗的成长,门罗社区也从中领悟到协作共荣的理念。如果说加密学是门罗的技术支撑,社区则是门罗发展的力量来源。
6.1.2 江山代有才人出
门罗项目是由全球数百人齐心协力,倾心奉献的结晶。在写稿的此刻,累计有超过500位人士对门罗的代码做出过贡献,其中仅去年就有200位。门罗采用非政府性治理(un-governance)的机制来协调开发等工作。项目由几大分支组成:门罗核心团队(Monero Core Team),门罗研究实验室(Monero Research Lab),门罗工作组(Monero Workgroups)和社区。
门罗核心团队负责以下关键事项: · 作为论坛众筹系统(Forum Funding System,FFS)的社区代理人和首要仲裁人 · 管理门罗项目的代码库:合并代码,保存备份,保障安全和开放性 · 作为门罗收到的捐款资金的管理人,确保这些资金用于门罗的发展 · 作为门罗软件和相关技术的受信任的签发者 · 与社区协作,建立愿景,规划发展蓝图
门罗研究实验室从基础理论和应用两个层面,研究和分析最前沿的机密货币技术。实验室中有数位学者和研究人员,所有的研究也在https://lab.getmonero.org/这一公众平台上发布。
门罗工作组是专门为一个个任务的协作而运行的,成员围绕数个任务组成数个小组。例如,门罗硬件工作组正在全力打造第一社区驱动的、开源的硬件钱包。另一个例子是门罗集成工作组,他们开发开源支付网关。你还可以加入门罗翻译组,门罗见面会组织小组等。
门罗的发展离不开它的社区,我们诚挚欢迎各位加入社区,为门罗贡献代码,提案,众筹,宣传和撰文。
6.2 编程文化
6.2.1 创建拉取请求来改进门罗
我们欢迎所有有意为门罗代码库做贡献的人。如果你想要修复或修改代码,请创建一个拉取请求(pull request)并提交至“master”分支。你可以参照下列步骤,通过引用代码副本,并在编辑后提交,来修缮门罗代码: 1. 引用(fork)GitHub上的程序库(repository) 2. 复制程序库至本地 3. 创建分支,进行修改 4. 对改动进行清晰的描述 5. 执行git push origin brach-name,将本地的改动同步至引用的程序库 6. 创建拉取请求(包含清晰的描述和档案),并提交至原始程序库
如果你的改动比较轻微,或者没有影响到代码库的其它部分,那么你的改动通常会在短时间内被通过。如果你的改动很大很复杂,那么则需要经过社区充分的讨论。
6.2.2 打补丁的礼节
希望大家按照以上步骤,以拉取请求的方式提交补丁。如若不行,请以git format-patch的格式发送补丁(例如,粘贴至fpaste.org,并分享链接给#monero-dev on irc.freenode.net)。
补丁应该是独立自足的。一个优秀的经验法则是为每一个问题、功能或逻辑改变创建一个补丁。当你要对某部分代码进行修缮时,请遵循它原本的代码风格,并且不要进行不必要的编辑,比如空格(whitespace)或行首缩进(reindentation),请进行压缩精简(squash)(例如,如果你补丁中要修复的问题也包含在下一个补丁中,请合并两个补丁)。
6.2.3 通用教程
提交的消息(commit message)应该是清晰且合乎逻辑的。标题中必须对补丁进行描述,另外可利用更多文字来提供细节,纪录等。富有意见性的代码能够积极地引导他人理解你所要表达的信息,并于之互动。如果你的改动中有新增功能,那么你可以在拉取请求中附上测试结果,这对他人非常有帮助。
如果你做了一些随机的不相关的改动(比如过于热心的编辑),你可以通过使用git add -p来选择要包含的改动,单步调试每一条编辑。这将有助于你创建一个干净简约的补丁。Git diff表示你在树(tree)中的改动,git diff --cached表示目正要被提交的改动。添加了git add -p的hunks,将从git diff输出中迁移至git diff --cached输出,这样一来你就可以明了地看到你的代码提交会是什么样的。
6.2.4 门罗的程序库
门罗项目GitHub中有多个程序库。它们之中的几个包含了本书提及的重要工具: · 门罗:采用C++语言编写的门罗网络的内核(core),包含CLI钱包 · 门罗网站:https://getmonero.org的源代码 · 门罗GUI:门罗的图形化用户界面,由Qt library开发而来 · Kastelo:社区硬件钱包 · Kovri:Kovri匿名路由
这些项目都被很好地纪录下来,所以你可以熟悉它们的代码并进行改进。此外,门罗还有很多子项目,你可以参与其中。欢迎随意浏览一个程序库,看看仍待处理的问题中,有没有是你可以参与贡献的。
$ This text is a terminal command. Don't run this command if you don't know what you are touching.
注意:在写稿的此刻,门罗生态的部分程序库正从GitHub迁移至GitLab。
6.3 门罗开发简介
因为开发门罗代码是一个复杂的过程,我们在这里提供一些建议和总结。因为Linux系统拥有内置的壳(注:shell,用来区别于核,是指“为使用者提供操作界面”的软件),来帮助开发门罗内核,所以请优先考虑使用基于Unix的操作系统。门罗是通过C++编写的(C++11风格referenciation)。
6.3.1 下载门罗源代码
门罗使用Git作为版本管理的工具;Git允许开发者追踪代码中的改动和修缮,使得共享文档的协作变得简单容易。执行下面的命令,以下载门罗源代码:
$ git clone --recursive https://github.com/monero-project/monero
6.3.2 Dependencies
从源码构建门罗,系统路径需要包括以下依赖组件(如表格所示)。部分依赖库已经包含在本代码库(标记为外部编译[vendored])。默认情况下,项目构建将优先使用系统自带的库,除非在系统路径中没有找到对应的库,才会使用外部编译的库。
6.3.4 开发指南
门罗使用CMake构建系统和一个顶级的生成文件(Makefile)来调用需要的cmake命令。一旦你安装了依赖部件(dependences),改变源代码目录的根(root)并执行make命令以开始构建。这个过程将耗费1~2小时,当代码完成构建后,你可以在构建文件夹中找到门罗的二进制文件。
6.3.5 Build故障排除
如果你碰到出错,输出会指明到底是哪里出错了。以下是一些常见的bug: · 过期的boost版本(你可能需要手动安装一个现在的版本) · 过期的gcc/g++ · 丢失的libzmq3-dev · 丢失的libreadline-dev · OpenGL出错
你可以(可选)输入make debug来编译一个除错构建(debugging build)。有众多社区可以帮助你排除故障。通过搜索引擎查询构建错误,你可以获得解决方案或他人的帮助。
6.3.6 构建门罗图形化用户界面(GUI)
门罗图形化用户界面是通过C++和Qt library构建的,两者缺一不可。有了依赖,你可以通过以下命令克隆和构建GUI:
$ git clone --recursive https://github.com/monero-project/monero-gui $ cd monero-gui $ ./build.sh
原著 | Serhack
翻译 | 筋斗云_头等仓
来源链接:https://www.8btc.com/media/455463
转载请注明文章出处
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。