当前位置: 首页 > backend >正文

区块链练手项目(持续更新)

1、前言

读研期间,我的研究方向聚焦于区块链与联邦学习的交叉领域,具体涉及同态加密、梯度剪枝、差分隐私等技术的融合应用。区块链技术体系庞大且内容繁杂,对初学者而言,若缺乏专业指导,不仅入门困难,连合适的源码都难以寻觅,很容易在起步阶段就陷入困境。​
回想当年,我独自负责一个省级项目时,从对区块链一无所知的状态,到最终顺利毕业,这一路走得异常艰辛。近期恰好要开发一个群体学习相关的项目,便借此机会重新梳理和回顾相关知识。

​区块链本身涵盖的知识点多、系统复杂度高,我不敢自诩为这方面的 “大神”,但希望能整理出一份适合初学者入门的教程。这既是为了记录笔记、防止遗忘,也是想分享自己的经验,帮助后来者少走弯路。即便已有过学习经历,重新拾起来依旧觉得不易,主要有几方面原因:​

一是资料杂乱且难查询,缺乏系统化的入门资源;二是源码项目规模大,对初学者不够友好;三是区块链与联邦学习结合的源码极度稀缺,即便存在少量案例,学习门槛也很高;四是区块链代码运行难度大,过程中容易出现各种难以解决的错误。

刚好现在有此机会,因此,我计划在这个专栏中,先重温区块链的核心知识,再深入探讨区块链与联邦学习的融合应用,最后梳理密码学相关内容。而密码学领域充斥着大量公式,往往即便有源码也难以理解,更别提很多内容根本没有配套代码。要将这几个领域有机结合,确实颇具挑战性,需要扎实的技术功底。

算下来,我在这个领域学习已有三年,跨专业攻读计算机学位的背景让我付出了更多努力,但至今仍觉得自己只是堪堪入门。希望这个专栏能留下我的学习轨迹,也真正能帮到大家少走一些弯路

但是我平时比较忙,所以笔记的排版上可能会有些问题,有些东西可能来不急规划,希望谅解。

1.1 区块链适合入门的一些项目

区块链目前多种语言可以实现,一般选择的是go,以及c++,当然java和pyhon的也有,初学者建议go语言,因为go语言相对简单一些,好多主流的区块链用的也是go语言。

1.go

下边是适合初学者的一些go语言项目

转载:https://www.flysnow.org/2019/11/08/golang-bitcoin-blockchain-sources

1.1.1、naivechain

地址:https://github.com/kofj/naivechain

推荐优先级:★★★★★
特点:极简实现,包含区块、区块链基础结构、P2P 节点连接及模拟挖矿等核心功能,仅 300 行代码,易于快速上手。

1.1.2 gochain

地址:https://github.com/crisadamo/gochain

推荐优先级:★★★★
特点:在基础概念之上增加了工作量证明(POW)、交易添加等模块,复杂度适中,适合理解进阶功能。
blockchain

地址:https://github.com/izqui/blockchain

推荐优先级:★★★★
特点:功能覆盖全面,包含 Base58 编码实现、哈希树(Merkle Root)等细节,贴近实际场景的技术选型。

1.1.3blockchain_go

地址:https://github.com/Jeiwan/blockchain_go

推荐优先级:★★★★
特点:侧重原理演示,代码注释详尽,对区块链核心流程的拆解清晰,适合系统性学习。

研究性质的简单实现,主要基于作者的几篇研究文章:

Basic Prototype
Proof-of-Work
Persistence and CLI
Transactions 1
Addresses
Transactions 2
Network
以上都是英文的,不过有人翻译,可以参考这个链接查看,这是一步步很不错的入门学习项目了。

https://ethfans.org/posts/building-blockchain-in-go-part-1
https://ethfans.org/posts/building-blockchain-in-go-part-2
https://ethfans.org/posts/building-blockchain-in-go-part-3
https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-4
https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-5
https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-6
https://ethfans.org/ajian1984/articles/building-blockchain-in-go-part-7

1.1.5、gocoin
https://github.com/piotrnar/gocoin

看这个项目的介绍:

Full bitcoin solution written in Go (golang)

比特币的都有了,钱包,交易,客户端,可以部署运行。

区块链技术肯定是个好技术,而且我们又具备Golang的优势,所以可以好好的看下,了解下。

2 java的

https://gitee.com/luckytuan/dce-blockchain

3、C++的

1、FISCO BCOS

这个项目稍微有点大,可以用来进阶,是国内的一个区块链项目,但是好在有官方文档,之前我也运行过。不过记录的笔记丢了,感觉还不错

源码:https://github.com/FISCO-BCOS/FISCO-BCOS
文档:https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/introduction.html#fisco-bcos

4、python

这篇文章是登上natural的一篇讲群体学习的文章,论文还是值得看看的,不过代码嘛,我运行过,当时刚开始学习,记了笔记,花了我两个月时间,国内的话不太好运行,而且它的代码也稍微有点问题,并且自从版本2之后,核心源码就被了隐藏了,我根本看不到,而且如果有问题的话,网络上也没有那么多解决信息,只能自己解决,虽然最后我运行出来了,如果想要运行笔记的话,我倒是可以分享下,但是我不太建议看他的代码,可以看些简单的,并且他的代码有个数据集好像还不能跑,当时也每太深入研究,毕竟我是需要毕业的,不让我看源码我就不研究他了。好像是基于以太坊的,不过虽然他说是群体学习,但是实际看他的代码,是链下聚合,区块链其实只起到了交流信息的作用。

https://github.com/schultzelab/
https://www.nature.com/articles/s41 
http://www.xdnf.cn/news/18060.html

相关文章:

  • [优选算法专题二滑动窗口——将x减到0的最小操作数]
  • 数据结构:在二叉搜索树中插入元素(Insert in a BST)
  • 已开源:Highcharts.NET,Highcharts Android,与Highcharts iOS集成
  • JUC常用线程辅助类详解
  • Vue中v-show与v-if的区别
  • 【每日一题】Day 6
  • 代码管理系统简介与部署
  • 2.4 双向链表
  • Redis学习--集群 数据分片、哈希槽、集群配置、主从容错迁移、扩缩容
  • Golang 后台技术面试套题 1
  • 《Nursing Research》(护理SCI)LaTeX模板详细教程:从入门到投稿(一)
  • OpenMemory MCP发布!AI记忆本地共享,Claude、Cursor一键同步效率翻倍!
  • Week 12: 深度学习补遗:RNN与LSTM
  • Go语言并发编程 ------ 锁机制详解
  • 【C++知识杂记1】智能指针及其分类
  • w嵌入式分享合集68
  • 什么是EDA(Exploratory Data Analysis,探索性数据分析)
  • MariaDB 多源复制
  • Windchill 11 Enumerated Type Customization Utility-枚举类型自定义实用程序
  • 嵌入式开发入门—电子元器件~半导体
  • Linux设备模型深度解析
  • 运动场和光流-动手学计算机视觉17
  • Spring 源码学习(十一)—— webmvc 配置
  • 【k8s、docker】Headless Service(无头服务)
  • Tomcat Connector连接器原理
  • 阶段二:7-上网行为安全概述
  • Spring Boot 项目配置 MySQL SSL 加密访问
  • SQL详细语法教程(四)约束和多表查询
  • 智能汽车领域研发,复用云原始开发范式?
  • 开源数据发现平台:Amundsen Search Service 搜索服务