本系列主要用于记录个人在学习区块链开发中的学习笔记,心得体会,以及学习资源分享。
区块链涉及的东西非常广,从事区块链开发的方向也很多。
从事区块链开发有很多方向,如: 区块链应用开发人员、区块链架构师、底层核心开发、共识算法研究等等。方向不同,需要学习的内容就不一样,如果基于区块链应用开发,只需要了解一门编程语言(nodejs, Go, Python, C++ 等), 大概了解区块链的原理,不一定要深入,当然理解越深入开发就越顺。如果做区块链基础开发,就需要了解加密算法,P2P 通信,共识算法等等。由于区块链涉及的技术很多,可以先对各个技术有一个概念了解,再逐步深入原理。
因此首先要做的就是明确自己要选择的方向,然后根据选择去学习相关内容,避免在学习的过程中迷失方向。这里推荐一篇不错的文章如何系统学习区块链技术(前面的引用的段落也来自这篇文章)。读完有个大概了解之后,才能有目的地去学习。
本人主要关注区块链应用开发,因此这个系统主要涉及区块链应用开发的相关知识。根据我目前粗浅的认知,个人感觉区块链应用开发和web2上的应用开发架构上基本大同小异,主要分前端开发和后端开发:
前端开发与web2上的前端开发基本是一样的,除了需要掌握基本的前端开发技术外,额外添加了以太坊协议的了解(比如需要熟悉web3.js类似的库),以及与数据货币钱包的交互(读取账户信息,发起交易等)。
后端开发主要是指指智能合约的开发,首先需要掌握的是一门合约开发语言,比如Solidity。另外由于部署环境是EVM,没有了传统后端开发中常用的文件系统和数据库,以及各种后台组件服务,因此开发思路上也略有不同。
所以,我的笔记主要包含以太坊为介绍,web3.js, 数字货币钱包,Dapp, 智能合约等内容。根据自身的学习情况,会不断更新。
以太坊开发
web3.js
metamask
solidity
truffle
