[以太坊--001] “Introducing Ethereum and Solidity”读书笔记-01

符正信
2023-12-01

书名《Introducing Ethereum and Solidity》。

第一章:基础知识

区块链是一个数据库,是分布式的,在很多台服务器上有多个副本的数据库,理论上每一台服务器都有完整的全部数据,实际上因为延迟、攻击、数据压缩、优化策略,有些服务器只有部分数据,也可能有错误数据。

  1. 什么是智能合约?智能合约就是区块链上的应用/application。如果把以太坊视为运行平台/操作系统,那么智能合约可以类比于手机操作系统上的app,也类比于windows os上的word、chrome等应用程序。从源码的角度而言,一个智能合约smart contract就是一个类似java/c++等编程语言的class。

以太坊的数据可以通过Mist操作。https://github.com/Ethereum/mist/releases

第二章:mist

加密货币,两个东西最重要:全节点full nodes和钱包wallet。加密货币存储在一个区块链上。一个区块链上有很多节点。节点分两类,全节点和非全节点。每个全节点是整条区块链的完整副本,有全部数据,并且实现了区块链的全部功能。所有全节点上的数据可能不一样,大多数节点的上数据是一样的,比如占总数51%的全节点认为一致的数据,是正确的版本。非全节点,是一个轻量级节点,实现区块链/数字货币的部分功能,存储部分数据,为方便起见,非全节点又被称之为钱包。

如果只是为了发送和接收以太币,安装钱包程序就行了。如果需要上传智能合约,需要安装全节点程序,在full node上操作。

钱包有很多种。mist也是一种钱包,比常规钱包提供了稍微丰富一点的功能,比如可以上传和执行智能合约。各种应用层的web程序对以太坊的操作都是通过mist接口进行的。

在以太坊上收支数字货币需要有账户。账户只包含“地址”和“密码”两个字符串,它们本质上是非对称加密的公钥和私钥。一个人可以申请足够多的账户,近乎无限。钱包保持“密码”,也就是“私钥”,这个是必须要保密的。地址是公钥,对所有人公开,不需要保密。钱包作为一个应用程序,本身也是有登录密码的,就像登录email帐号需要密码一样。

除了mist,开发者需要熟悉的三个工具:

  1. MetaMask chrome插件:在chrome浏览器上模拟全节点,创建帐号,执行智能合约,转账,收发以太币等等,缺点,当然它不能挖矿(作为开发模拟工具,想想也不能挖矿啊)。
  2. Geth:go语言实现的以太坊客户端,是目前用户最多使用最广的版本。
  3. Parity:rust语言实现的以太坊客户端。

通常有两种用法:启动Patiry节点,再启动mist,mist连接Parity节点; 启动mist,mist内嵌Geth节点。

以太坊上的每个智能合约,都有自己的帐号,称之为合约帐号,形式上跟个人创建的帐号是一样的,同一个帐号空间,使用上跟个人帐号没有区别。

mist安装使用:忽略。

mist项目已经不再维护了。后续会有更好的解决方案。

第三章 EVM

有诸多节点的整个以太坊网络组成一台巨大的虚拟机,叫EVM。EVM字长256位。

这一章可以忽略,又把前面提到的概念讲了一遍,还有一些暂时用不到的细节,用不到就不好理解。

这个编排不合理,逻辑不对。

 

 类似资料: