区块链ETH--基础概念与钱包使用

ETH基础概念与钱包使用

介绍

简介

  • 开发者社区大
  • 相对成熟
  • 应用入手方便学习
  • JS结合紧密,方便开发人员上手

以太坊基础

  • 整体介绍
  • 钱包、测试网、简单交易
  • 客户端,搭建私链

深入了解

  • 账户和合约
  • 以太坊交易、gas费和EVN

编程与应用

  • solidity
  • dapp实现简单投票
  • web3.js及简单应用

深入理解合约工作流

  • 合约工作流
  • 自动化编译和部署
  • 自动化测试

深入理解以太坊原理

  • 以太坊的理念与实现
  • 源码分析

DAPP实战

  • 基于token的投票
  • 基于ipfs的去中心化ebay
  • ICO Dapp

工具

MetaMask-浏览器插件钱包

remix-基于浏览器的在线编辑器

geth-go语言的eth客户端

web3.js-以太坊js API库

ganache-以太坊客户端(测试环境私链)

truffle-以太坊开发框架

环境

  • chrome

  • linux–go/git/node/npm

  • visualcode

  • vpn

ETH的组成部分

  • P2P网络

该网络可在TCP端口30303上寻址,并运行一个协议:在这里插入图片描述

  • 交易

以太坊交易是网络信息,包括发送者,接收者,值和数据的有效载荷

  • 以太坊虚拟机(EVM)

以太坊状态转换由以太坊虚拟机处理,这是一个执行字节码(机器语言指令)的基于堆栈的虚拟机

启动以太坊是在启动虚拟机

  • 数据库(blockchain)一种数据存储结构

以太坊的区块链作为数据库(Google的levelDB)本地存储在每一个节点上,包含序列化后的交易和系统状态

  • 客户端

以太坊有几种可互操作的客户端软件实现:geth和parity

概念

  • 账户:包含地址,余额和随机数,以及可选的存储和代码的对象

    • 普通账户:存储和代码均为空
    • 合约账户:包含存储和代码
  • 地址

    • 它可以在区块链上接受或发送交易,是ECDSA公钥的keccak散列的最右边的160位
  • 交易

    • 以太币和信息
    • 向合约发送的交易可以调用合约代码,并以信息数据为函数参数
    • 向空用户发送信息可以自动生成以信息为代码块的合约账户
  • gas

    • 虚拟燃料

货币

挖矿前:众筹发行7200万以太币,称为矿前

产量稳定:被限制不超过7200万的25%

挖矿产出:区块奖励(block reward),叔块奖励(uncle reward),叔块引用奖励(uncle referencing reward)

  • 区块奖励:5->3区块速度快
  • 叔块奖励:晚确认的区块,称为叔块,叔块的哈希也被放入下一个区块里,叔块会获得叔块奖励
  • 叔块引用奖励:引用也会得到奖励

目前这一套基于POW的奖励机制–GHOST协议

PoS–Casper协议
在这里插入图片描述

浏览器与区块信息

  • hash rate 全网算力
  • network difficulty 全网难度
  • transactions 6.7tps 每秒交易数

在这里插入图片描述

transactions

  • contract internal transactions合约内部交易(合约会自动发交易)
  • transactions 交易
  • 叔块的交易哈希算法不同与父块(Sha3)
  • size:没有限制区块大小,有特别机制限制gas limit,gas used使用的
  • nonce:随机数,简单理解为计数器
  • block reward:三部分(静态奖励+gas+叔块引用奖励)

Ghost协议

  • 出块时间:设计12秒,实际14~15秒,快速确定会带来区块的高作废率,安全性降低
  • Greedy Heaviest Observed SubTree 防止出块太快造成的威胁攻击
  • 计算工作量证明时,不仅包含当前区块的祖区块,父区块,还要包含祖先块的作废的后代区块(“叔块”),将他们综合考虑

图灵完备语言

  • 如果一个系统可以模拟任何图灵机,它就被定义为“图灵完备”,这种系统称为通用图灵机(UTM)
  • 无限循环-gas消耗
  • 智能合约–>DAPP
    • 区块链上的智能合约
    • web前端用户界面

Token

在这里插入图片描述

  • total supply 供应量

  • contract 币安在eth上的合约地址

  • 继承标准ERC721类似于继承类

专有名词

EIP 以太坊改进建议

ERC 以太坊征求意见,EIP变成ERC表示试图定义以太坊使用的特定标准的提议

EOA 创建的账户

Ethash 以太坊1.0 工作量证明算法

HD钱包 使用分层确定性密钥创建和转账协议(BIP32)的钱包

Keccak256 以太坊中使用的密码哈希函数,被标准化为SHA-3

Nounce 密码学中指代只能使用一次的值,以太坊中使用两种类型的随机数,账户随机数和POW随机数

钱包

  • 保存私钥,创建以太坊交易数据包,网络广播
  • 常用钱包推荐:
    在这里插入图片描述

相关概念

私钥:256位的随机数

公钥:由私钥通过椭圆曲线加密secp256k1算法单向生成的512位(64字节)数

地址:由公钥的keccak-256单向哈希,取最后20个字节(160位)派生出来的标识符

注意:

  • keystore文件就是加密存储的私钥
  • 助记词BIP-39提出,帮助用户记忆复杂私钥,可以导出私钥,所以可以认为助记词就是私钥

使用

chrome中下载MetaMask插件即可,使用界面如下:

在这里插入图片描述

切换网络

  • Main Network(NetworkID:1) --主网络
  • Ropsten Test Network(NetworkID:3) --以太坊公共测试网络pos
  • Kovan Test Network(NetworkID:42) --Aura协议,权威证明POA共识,仅支持Parity客户端
  • Rinkeby Test Network(NetworkID:4) --Clique协议,权威证明POA共识
  • Localhost 8545 --连接到与浏览器在同一台计算机上运行的节点,可以是任何公共区块链的一部分,也可以是私有testnet

测试使用

获得测试以太

  • (ropsten) https://faucet.ropsten.be/
  • (rinkeby) https://faucet.rinkeby.io/

这只是其中的两种,有时候网站会打不开,请尝试获取测试以太的其他途径

转账

尝试发送以太:可以自定义gas price请添加图片描述

查阅交易信息

在交易完成会可以查阅交易信息(虽然官方区块链测试浏览器一直都打不开)
这里给出一个ropsten区块链浏览器(非官方)


资料来源:深入掌握以太坊核心技术-尚硅谷 +《Mastering Ethereum》

更新:2022.1.7 结合《Mastering Ethereum》更新

猜你喜欢

转载自blog.csdn.net/m0_52739647/article/details/121176432