学习web3的第一天
学习web3的第一天
闲着无事,虽然自己对web3热情满满,但实际并没有去参与,仅仅是买点币作为一个对行业的贡献。
前几天看到一个twitter话题,说一周学会web3开发,来吧,说干就干,开始学习。
此篇文章仅做记录使用,记录自己的收获和学习过程。
学习过程
1 打开google docs,看了下描述
从中发觉到几个网站,开始进行遍历和递归查找。
2 先遍历solidity极简入门
- 看了solidity的变量、函数、类等概念,在remix操作一番,结束,结果发现了一个uint256,这个感觉是从go中来的,翻看起来go-ethereum的代码,发现了一个uint256类型。
发现新的点
- uint256 uint256
- go-ethereum go-ethereum
3 uint256 类型
一看这个就是大数,go中最大是uint64, 256的话,就是四个uint64,是一个slice。打开uint256的github,一看才100多个star,这个是一个经典的类型,可以看出实际没有人关心这个类型,只关心它的操作。没有业务上的意义,不好展开。
github首页重点讲了他和标准库的对比,就是比标准库的bigint 强悍多少多少。自己没跑过benchmark,怀着好奇,用github的codespace打开一个实例,然后跑了下benchmark,哇,比bigint快好多。
4 go-ethereum 的依赖库分析
本来是去找下uint256在go-ethereum中的依赖和使用的,意外打开了go.mod,所以顺藤摸瓜的看了看go-ethereum的依赖库,发现了很多有名的go library。
首先是依赖的云服务,可以看出是aws和azure,cloudflare 具体要看怎么用的
- azure-storage-blob-go azure-storage-blob-go
- aws-sdk-go aws-sdk-go
- cloudflare-go cloudflare-go
- docker docker
数据结构,用到了lru
- hashicorp/golang-lru golang-lru
- fastcache fastcache
- golang-set golang-set
- mmap mmap
- stack go-stack
- uint256 uint256
- bloomfilter bloomfilter
数据传输
id生成器
- google/uuid uuid
数据库
yml解析
- toml toml
加解密
- x-crypto x-crypto
- gnark-crypto gnark-crypto
消息
- notify notify
btc
- btc btcsuite
测试
- testify testify
5 再遍历下 web3-from-zero
又跑题了,首先看到一个前端学习网站
回到正题,从这个网站看,就两个主题,使用js读和写ethereum的web3。后续看看,应该不难
结果
把solidity看完了,给自己加个任务,下个系列,去阅读分析go-ethereum的依赖库。
Read other posts