本平台是ICT区块链实验室公共平台,主要用于:
- 共享公共学习资源。包括论文、笔记、有价值的文章博客等。
- 协同开发项目。用于实现多人协同工作时,代码管理,文档管理;便于新加入成员快速熟悉项目,能够快速入手;
- 展示实验室成果,公布相关博客,提升实验室影响力。
- 欢迎大家积极共享相关文献资源,编辑、完善相应的内容。
- 尽量使用Markdown文档进行编辑,Markdown文档基础教程可参考Markdown基础教程;推荐使用typora-Markdown编辑阅读器: https://typora.io/ 。
- 每位同学在
commit
相关文档或项目时,附加信息请添加有个人标识,可以是姓名拼音或者是拼音简写,并采用简要的语句概述相关改动。如:git commit -m "Zhangsan: fix a bug"
。 - 善用
.gitignore
文件,禁止将过程文件、个人配置文件等杂乱文件上传到共享库中。除必要外,应保证上传到库中只有文档类文件及源码类文件。 - 处于实验室开发中的项目及未公开的项目,必须建立私有仓库,禁止使用公有仓库。涉及一定机密的项目,禁止在该平台进行协助开发。
通过Github平台进行协同开发,有利于资源共享、版本控制,便于新人加入着手项目,能够极大的提高项目开发效率。对于协同开发,每个项目需遵循以下规范:
- 除开源项目外,必须创建私有库进行开发。
- 每个项目需要有一个主负责人,负责管理该公共账号,并创建相应的私有库;负责合并代码,合并项目资料;其他成员由主负责人邀请,加入到私有库开发中,共同进行开发。
- 对于每个项目的库,建议使用以下结构:
project
|__README.md
|__doc
|__src
|__test
其中,README.md
文档应包含有项目的一个概况及相关的一些信息,如示例所示。doc
主要包含一些开发中的文档。src
主要包含相关代码,test
是项目的测试入口。
- 对于每个项目必须包含相关的说明文档,包括但不限于:项目概述文档(包含项目的整体状况)、开发环境的搭建说明(可以是一些博客链接,帮助他人快速入手)、相关资料整理等。
- 区块链技术脱胎于比特币应用,因此先可以看看《精通比特币》对区块链实现有一个初步的认识。
- 以太坊(Ethereum)是目前区块链技术较为成功的一个应用,也是开发者较多的一个开源项目,其一般被认为区块链2.0的代表,可以看看以太坊黄皮书,对以太坊有个初步的了解。
- 初步了解下智能合约,能够编写简单的合约。
- 学会使用web3或者JSON RPC,与以太坊节点进行交互。掌握DAPP开发基本知识。
- 了解POW、POS、POA、PBFT等分布式共识算法。
具体请查看论文相关文档。