笔记区块链ETH学习1--基础概念与钱包使用
Posted Cookieer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔记区块链ETH学习1--基础概念与钱包使用相关的知识,希望对你有一定的参考价值。
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随机数
应用
- 1 ether =10^18 wei
钱包
私钥:256位的随机数
公钥:由私钥通过椭圆曲线加密secp256k1算法单向生成的512位(64字节)数
地址:由公钥的keccak-256单向哈希,取最后20个字节(160位)派生出来的标识符
安全须知
- keystore文件就是加密存储的私钥
- 助记词
- 可以导出私钥,所以可以认为助记词就是私钥
- BIP-39提出,帮助用户记忆复杂私钥
切换网络
-
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
-
Custom RPC
- 允许将Metamask连接到任意兼容geth的RPC接口的节点,可以是任何公共或私人区块链的一部分
测试使用
首先获得测试以太
或者使用rinkeby获取,这个需要在社交平台发一条带有地址的消息
尝试发送以太:可以自定义gas price
课程来源:深入掌握以太坊核心技术-尚硅谷
以上是关于笔记区块链ETH学习1--基础概念与钱包使用的主要内容,如果未能解决你的问题,请参考以下文章