区块链方向学习路线

学习路线图

下面是登链社区给出的区块链开发者的学习路线图

1e9526375eaf48d9a2eaa3a2a68d0e99.jpeg

学习路线建议

对于一个区块链方向的学习者而言,首先要了解的是区块链理论知识,当你了解了区块链的理论知识之后,下面有三个方向来学习,可以通俗的理解为区块链方向的后端,前端以及技术应用。

543506c8afc24947a771e99efe133268.png

 

区块链理论知识

这里,我们推荐两门课程:

北京大学肖臻老师的区块链公开课:

北京大学肖臻老师《区块链技术与应用》公开课_哔哩哔哩_bilibili

这门课程讲述了比特币,以太坊(PoS之前)的知识,非常详细,能为你的区块链学习开发打下坚实的基础!

Tintinland区块链基础通识课:

第一课-1:什么是区块链|区块链通识基础_哔哩哔哩_bilibili

这门课程主要涉及的有以太坊(PoS之后),包含PoS机制,标准区块链范式的内容。

区块链底层

首先,区块链的底层现在比较主流的语言有Golang和Rust,Rust链开发我们方向的@黎俊奕 大佬比较了解,随后请他在下面进行补充,这里简要介绍一下Go语言的三个方向:

Go语言实现比特币

这是一个基础的BTC区块链构建,一个文件夹到底,对新手友好!

Go语言实现比特币-完整教程-代码视频_哔哩哔哩_bilibili

Go语言实现Web3

相比上面的视频,这个视频的内容要更加深入一点,涉及EVM虚拟机,加密货币等知识,相对深入一点

【区块链开发】使用 Golang 从零开始构建区块链(34小时超详细课程)_哔哩哔哩_bilibili

Go语言实现Web3应用底层

这个是使用go语言搭建一个Web3项目,实现了这个项目,你就具备了参加黑客松比赛的简单能力。

【Web3 游戏开发】使用 Golang 构建去一个中心化扑克游戏(GameFi赛道)_哔哩哔哩_bilibili

Web3开发

Web3,常见的开发方向就是基于某条区块链的应用开发(dApp)。而基于这种应用开发,类比前后端方向也有如下的三个方向:智能合约(区块链上的一种自动化程序),全栈应用开发,合约安全审计。

Solidity开发

语法

喜欢文档的同学可以参考WFT学院的solidity三部分

 Solidity入门 | WTF Academy

这个文档有配套的视频(五里墩茶社大佬的学习笔记)

[跟我学Solidity] 第1日: HelloWeb3和数值类型_哔哩哔哩_bilibili

还有就是崔棉大师的Solidity课程,业界好评

Solidity8.0全面精通-01-Solidity8.0新特性_哔哩哔哩_bilibili

框架

这个是Patrick Collins大神最新的foundry教学课程,foundry和hardhat是Solisity开发最常用的两个框架,这里面也涉及了很多的Web3基础知识,值得一看

https://www.youtube.com/watch?v=-1GB6m39-rM

智能合约安全审计

合约审计的漏洞查找是一项非常高难度的工作,不同于一般程序员的常规查错,合约在部署之后是不可篡改的,从theDao造成的的以太坊分裂,到现在的动态攻击,合约安全审计一致是区块链上最终要的工作之一,值得一提的是我们工作室的一位毕业学长目前就在做合约审计的相关工作。下面这是Patrick Collins大神最新的安全审计课程,当你有了一定的合约开发基础,不妨来试一试安全审计吧。

https://www.youtube.com/watch?v=Y3WMkl0AFJk

Dapp开发

如果你想要参加区块链方向最令人激动的黑客松比赛,那么Dapp开发毫无疑问是最常规的赛道,这样的开发分支在建议路线图中写了

区块链科学

区块链科学部分,我们主要聚焦区块链的扩容问题,想要了解这部分知识,可以先学习一下区块链Layer2是什么,下面是Web3实验室的视频,非常通俗!

暂时无法在成电飞书文档外展示此内容

SideChain

sidechain就是借助主链数据,使用自己的EVM进行交易的处理,最后将其拥有的数据同步给主链。

Rollup

Rollup 本质上是一条独立的区块链,拥有自己的虚拟机,不同于以太坊的区块是由多数节点认可来实现其合法性的,监控 Rollup 状态的一方可以将 “断言” 发送至以太坊,来说明交易是如何处理的;以太坊将决定是否接受这个断言,无论这个断言是否获得了 Rollup 上多数参与方的支持。而接受断言的选择就出现了两个分支:zkRollup和OptimismRollup

零知识证明理论:

https://www.bilibili.com/video/BV1N7xMeREEf/?spm_id_from=333.337.search-card.all.click

学习资源

社群

  1. lllu_23(up主):我的Web3方向的启蒙老师。搬运了很多油管的课程,建议观看他搬运的知识性视频,非常优秀。缺点是很多项目是在linux上面开发的,如果不是很熟悉linux的话很多大型项目会出很多bug;其二是由于Web3行业的时效性,很多比较老的视频是存在版本误差的,往往在学习coding很早的视频时会遇到很多问题。

  2. TinTinLand:一个新兴的Web3社群,组织的公开课和有项目奖金的黑客松比赛还是很赞的,他们提供的区块链内容更偏向实用性,推荐的链和框架往往也都是最新的,值得关注!

  3. 登链社区:侧重于技术性的文章,我心目中国内一等权威的区块链技术网站。

  4. Chainlink预言机:经常能够听到一句话:“一个没有听说过Chainlink的区块链开发者一定不是一个优秀的开发者”,这句话可能有点夸大,但是Chainlink社区确实是一个国内外都很知名的社区,虽然我没有怎么看过他们的作品。

  5. Rebase:一个侧重区块链底层技术原理的社区。

网站

WTF学院,一个由北大区块链技术社团开发的学习网站,在这里你可以学到Solidity语法,Ether.js,Langchain大模型,前端知识,以太坊虚拟机等内容。

https://www.wtf.academy/

生成数字藏品NFT的网站

https://promptbase.com/

下面的是一个各个链的基础知识以及黑客松比赛的网站

https://www.hackquest.io/zh

黑客松

黑客松是一种偏向于Web3全栈项目开发的短时性比赛,在黑客松比赛中得奖其一是有丰厚的奖金,其二是对于入职Web3公司有很大的加分项。常见的黑客松大致分为两类:

  1. 第一种是奖金在5w$左右的大型黑客松,一般是需要成熟的项目,比较难得奖,适合资深开发者参与。

  2. 第二种是小一些的黑客松,主要是某些链或者社区的推广项目,相对容易得奖,而且有些时候只要发布项目就可以获得一定数额的奖金,适合练手。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot547产业园区智慧公寓管理系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装产业园区智慧公寓管理系统软件来发挥其高效地信息处理的作用…

使用 OpenAI 进行结构化标签提取的 Python 实现

使用 OpenAI 进行结构化标签提取的 Python 实现 1. 环境准备2. 加载环境变量3. 初始化 OpenAI 客户端4. 定义系统消息5. 实现标签提取函数6. 示例应用示例1:人事文档示例2:技术文档 7. 运行结果8. 总结 在现代的信息处理中,从文本中提取结构化…

【电源专题】为什么测试电源的SW波形上冲振荡之前的0V电位要先来个小的下降

在同步电源的开关节点SW波形测试中,你可能会发现周期性的SW波形在上升前的一小段时间时间内会有一个小小的下跌,这个下跌会低于0V。那么这个下跌是怎么来的呢? 如下所示为某降压转换器的SW开关节点波形: 其展开后可以看到在上升之前有20ns左右的时间,SW电压是下跌…

OneFlow和PyTorch在性能上有哪些区别?

OneFlow 和 PyTorch 在性能上的区别主要体现在以下几个方面: 本篇文章的目录 分布式训练性能 硬件利用率和显存优化 模型训练速度 OneFlow:默认采用静态图模式,在模型训练前会对计算图进行编译优化,能够减少运行时的开销&…

操作系统大题整理

专题一 程序代码题:程序设计与分析,主要考的是线程,多线程的并发? 大题第一问(1)操作系统的结构有哪几种常用的结构? 宏内核:宏内核是将操作系统的主要功能模块都集中在内核的一种结…

web安全常用靶场

这里写自定义目录标题 phpstydy2018pikachuxss-labs phpstydy2018 网盘地址 提取码: nxnw ‌phpStudy是一款专为PHP开发者设计的集成环境工具,主要用于简化PHP开发环境的搭建过程。‌ 它集成了Apache、MySQL、PHP等核心组件,用户只需进行一次性安装&a…

【yolov8自卸卡车-挖掘机-装载机检测】

yolov8自卸卡车-挖掘机-装载机检测 YOLOv8算法介绍数据集和模型下载数据集准备数据配置文件(data.yaml)安装依赖模型训练步骤 YOLOv8算法介绍 YOLOv8是You Only Look Once(YOLO)算法家族的最新版本,它是一种单阶段目标…

扩散模型论文概述(二):Google系列工作【学习笔记】

视频链接:扩散模型论文概述(二):Google系列工作_哔哩哔哩_bilibili 本视频讲的是Google在图像生成的工作。 同样,第一张图片是神作,总结的太好了! 在生成式AI的时代,OpenAI和Google不…

redis常用数据类型

在Redis中,有几种数据类型是非常常用且核心的,它们各自有着独特的应用场景和优势。 1. 字符串(String): • 这是Redis中最基本、最常用的数据类型。 • 字符串可以是任何形式的二进制数据,包括文本、图片等…

【Go研究】Go语言脚本化的可行性——yaegi项目体验

0x01 背景——云计算中脚本化困境 作为云基础设施管理中,大量需要跟文件系统、容器等相关的操作,这些操作实现通常用脚本来实现。 现在探讨下,这些脚本为什么一定要用脚本语言来实现,以及目前实现中的常见的问题。 常见的两个场…

基于氢氧燃料电池的分布式三相电力系统Simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于氢氧燃料电池的分布式三相电力系统Simulink建模与仿真,仿真输出燃料电池中氢氧元素含量变化以及生成的H2O变化情况。 2.系统仿真结果 3.核心程序与模型 版本…

3218. 切蛋糕的最小总开销 I

3218. 切蛋糕的最小总开销 I 题目链接&#xff1a;3218. 切蛋糕的最小总开销 I 代码如下&#xff1a; class Solution { public:int minimumCost(int m, int n, vector<int>& horizontalCut, vector<int>& verticalCut){ranges::sort(horizontalCut);ra…

洛谷 P3205 [HNOI2010] 合唱队

思路 先设 d p [ i ] [ j ] dp[i][j] dp[i][j] 为区间 [ i , j ] [i, j] [i,j] 的队形方案数。 考虑如何转移&#xff1a;对于区间 [ i , j ] [i, j] [i,j] 来说&#xff0c;最后一个入队的要么是 i i i&#xff0c;要么是 j j j。 所以分类讨论&#xff1a; 当 j j j …

UE5.3 虚幻引擎 Windows插件开发打包(带源码插件打包、无源码插件打包)

0 引言 随着项目体量的增大&#xff0c;所有代码功能都放一起很难管理。所以有什么办法可以将大模块划分成一个个小模块吗。当然有&#xff0c;因为虚幻引擎本身就遇到过这个问题&#xff0c;他的解决办法就是使用插件的形式开发。 例如&#xff0c;一个团队开发了文件I/O模块插…

MySQL 的事务与多版本并发控制(MVCC)的那些事

什么是事务原子性:一致性隔离性 问题1: 为什么MySQL要使用mvcc实现隔离性而不使用 锁 解决并发问题?持久性 问题2: MySQL 不是磁盘数据库吗,持久化为什么是 redo log 保证的?问题 3: redo log 储存了什么东西,持久化(崩溃恢复是怎么做的?)问题 4 : MySQL 的 bing log (二进制…

27.Java 线程间通信(synchronized 实现线程间通信、Lock 实现线程间通信)

一、线程间通信 1、概述 线程间通信的模型有两种&#xff1a;共享内存和消息传递 2、多线程编程步骤&#xff08;中&#xff09; 创建资源类&#xff0c;在资源类中创建属性和操作方法 在资源类操作方法进行判断、操作、通知 创建多个线程&#xff0c;调用资源类中的操作方…

多模态论文笔记——U-ViT

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍U-ViT的模型架构和实验细节&#xff0c;虽然没有后续的DiT在AIGC领域火爆&#xff0c;但为后来的研究奠定了基础&#xff0c;但其开创性的探索值得学习…

SpringBoot的6种API请求参数读取方式

RequestParam 用来加载URL中?之后的参数 比如: 这个请求/user?namedidspace 就可以如下面这样&#xff0c;使用RequestParam 来加载URL 中的name 参数 GetMapping("/user") ResponseBody() public User findUserByName(RequestParam("name") String n…

node.js内置模块之---http 和 https 模块

http 和 https 模块的作用 在 Node.js 中&#xff0c;http 和 https 模块用于创建和处理 HTTP 和 HTTPS 请求/响应 http模块 http 模块提供了用于实现 HTTP 协议的功能。它可以用来创建 HTTP 服务器&#xff0c;处理 HTTP 请求&#xff0c;发送 HTTP 响应&#xff0c;同时也可以…

Image和Video在同一个Dataloader中交错加载联合训练

单卡实现 本文主要从两个方面进行展开&#xff1a; &#xff11;&#xff0e;将两个或多个dataset组合成pytorch中的一个ConcatDataset&#xff0e;这个dataset将会作为pytorch中Dataloader的输入。 &#xff12;&#xff0e;覆盖重写RandomSampler修改batch产生过程&#xff…