2022/04/09 Solidity_概念理解

# 2022/04/09 概念理解

### 涉及到的工具

- `MetaMask` --->浏览器插件钱包
- `Remix` --->浏览器的`solidity`在线编译工具
- `Geth` --->以太坊客户端(`Go`语言)
- `web3.js` --->以太坊`js API`库
- `Canache` --->以太坊客户端(测试环境私链)
- `Truffle` --->开发、测试框架
- `Hardhat` --->开发、测试框架

### 环境准备

- `Go runtime`
- `git`
- `node.js`
- `npm`
- `yarn`
- `vscode`

#### `Mac`装机环境

- `brew`

### 区块链(公链)发展简史

- 比特币:--->点对点的记账链路,功能单一,就是记账,转账 --->块生成速度慢 --->链条式、分布式的存储 --->只有简单的简本
- 以太坊:--->拓展区块链技术的脚本做交易的控制,拓展支持智能合约的区块链平台 --->块生成速度快,但是链路上出现情况就会拥堵 --->共识算法(`pwo\pos`)
- 3.0:--->高性能、大吞吐量、开发者友好、用户友好 --->`US`项目
- 以太坊四个重大分叉
- `Ice Age`:--->引入指数难度硬分叉,促使向`proof-of-stake`过渡
- `The Dao`(`Dao`是去中心化自治组织--->所有的事情投票决定,包括社区发展):--->扭转被攻击的`Dao`合约,形成以太坊(`ETH`回滚数据,会滚到被攻击之前的分叉)和以太坊经典(`ETC`不回滚数据,继续运行被攻击的链路)两个竞争系统的硬分叉--->`Dapp`一旦跑起来就不可更改
- `Tangerine Whistle`:--->改变`IO`运算的`gas`计算,从拒绝服务攻击中清除累积状态
- `Spurious Dragon`:--->解决更多拒绝服务攻击媒介的硬分叉,提供重放攻击保护机制

### 以太坊基本概念和工作原理

#### 以太坊的特点

- 开源的、全球分布的计算基础设施 --->没有中心化的东西可以控制全部的节点,自己起一个节点的话也可以参与其中
- 可以存储智能合约(`smart contract`)的程序,被以太坊自动执行
- 使用区块链作为底层数据结构,使用区块链来同步和存储:系统状态和以太币(`ether`本身不是作为货币,本身是作为计量和约束执行资源(合约)的成本)
- 以太坊本质是一个基于交易的状态机(`transaction-base state machine`) --->整个区块链的状态,矿工挖矿时候把所有的交易打包在一起,出一个区块.然后广播.让其他矿工确认,如果都认同的话那么共同的账本就增长了,就在后面多加一个区块.(这是区块链的概念) --->区块链有状态,有了一个区块就代表区块当中发生了那么多的交易,大家的状态就会发生改变.每增加一个区块状态就会改变. --->跟踪整个存储在区块链上的所有数据(所有的数据都可以)
- 程序员可以任意开发`Dapp`还可以转币

#### 以太坊的组成成分

**以太坊的本质还是使用了区块链技术,所以区块链有的东西以太坊都有**

- `P2P`网络:--->基于`P2P`网络进行通讯,以太坊主网络是在`TCP`端口30303选址,两个节点互相发现的时候通信接口是30303 --->协议:`DEVp2p`
- 交易(`transaction`): --->以太坊交易是网络消息,包括:
- `sender`发送者
- `reeiver`接收者
- `value`值
- `payload`一段数据
- 以太坊虚拟机(`EVM`): --->以太坊状态转换由虚拟机(`EVM`)处理,自己当以太坊节点其实是启动了以太坊虚拟机的一部分
- 数据库(`Blockchain`以太坊底层的数据存储结构): --->以太坊的区块链作为数据库(通常是`google`的`levelDB`)本地存储在每个节点上,包含序列化后的交易结果和交易发生后系统状态,一旦记录上链就是永久存储,每个人都有副本
- 客户端: --->代表作:`Go-Ethereum(Geth)`和`Parity`

### 以太坊与比特币的区别与联系

### 以太坊客户端使用

### 深入理解智能合约

### `solidity`语法

### `web3.js`调用

### 工具以及复杂调用

posted @   俊king  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示