「本文已参与「新人创作礼」活动,一起开启掘金创作之路。」
概念
区块链简明发展史:比特币?以太坊?EOS?
区块链 1.0,代表是比特币,币圈人称大饼,只支持转账
区块链 2.0,代表是以太坊,币圈人称姨太, 能够在转账基础上支持一定复杂度的业务逻辑定制(智能合约), 类似于有了 JS 的万维网,即在静态展示的基础上自定义动态内容, 但是浏览器的 JS 执行效率还比较弱,不能在浏览器做非常复杂的事情;
区块链 3.0,代表是各种高性能底层公链,比如 EOS,币圈人称柚子, 是目前整个社区努力的方向(但开发生态的成熟还需要时间)能够支持高并发商业应用的运行, 类似于为能各种复杂的端应用提供运行环境的现代浏览器,比如 Chrome
区块链核心概念:什么是账户?什么是交易?什么是区块?什么是区块链?什么是块高度?什么是出块时间?
账户:由地址 公钥 密钥 组成 地址相当于用户名 而后两者属于密码
交易:两个账户之间的转账交易、或者智能合约调用请求
区块:相当于账本的一页,包含区块链中的每个区块都可能包含多笔交易;
区块链:相当于账本,区块链中不同区块按被矿工打包的时间先后组织
块高度:相当于账本的页数,每产生一个新的区块(一页账本),块高度(页码)就会加 1
出块时间:从发起到确认交易的时间间隔 交易时间(某笔交易从发起到被打包进区块链的时间) 比特币的区块时间通常控制在 10 分钟 以太坊的区块时间在 15 秒左右
任何打包的交易在分布式网络上达成共识都是需要时间的,而共识算法决定了时间的长短 POW、POS、DPOS。
以太坊核心概念:什么是以太坊网络?与以太坊网络交互的几种方式?
以太坊交互方式可以分成 主网 测试网 其他网
1.mainnet 是以太坊的线上环境,记录、保存用户和智能合约的交易, 主网中存储的代币才具有真正的价值;
2.Testnet,就是以太坊的测试环境,目的是方便社区和开发者测试智能合约、转账等功能, 典型的测试网络有 Rinkeby、Ropsten、Kovan,代币没有价值
3.开发者在本地运行以太坊节点组成 向以太坊网络发送转账请求,或调用智能合约函数,用我们熟悉的计算机术语来说, 就是发起读取或修改以太坊区块链上数据的请求,并拿到反馈的过程
什么是以太坊账户?账户的基本要素?怎么创建账户?怎么使用钱包(Metamask)?
智能合约指以太坊网络上被代码控制的一个账户 社区中也会把智能合约账户称为内部账户,而普通用户账户称为外部账户,不同于我们使用各种钱包软件,创建的账户(由创建账户的用户来控制),智能合约对应的账户是由代码控制的 ,通过交易(Transaction)的方式与智能合约账户交互
相同的智能合约源代码可以部署到不同的网络上,或者在相同的网络上部署很多次, 都会产生不同的智能合约地址 而部署所产生的智能合约账户只存在于其被部署到的那个网络, 比如部署到 Mainnet 主网的智能合约不能通过 Rinkeby 测试网络去访问, 反过来亦然,普通账户则在不同网络间是通用的
智能合约账户关键属性
- balance:智能合约账户所控制的资产余额
- storage:智能合约的相关数据会存储在这里,可粗暴的将其看做是 DApp 的数据库
- code:智能合约的字节码,由智能合约源代码编译而来, 存储在区块链上方便任何节点接受智能合约的函数调用
- TxHash:交易流水号,就像是你去银行转账银行给你业务回执的那个流水号
- Gas 是交易手续费的单位,而 Ether、Gwei 则是以太坊中代币的单位 燃料价格(GWEI)
- Gas Limit 表示在交易执行时最多消耗的汽油数量 指定我们最多愿意为执行该笔交易支付多少个 Gas
- Gas Used 表示实际使用了多少汽油
- Gas Price 表示汽油的价格是 0.0000000039 Ether,或者 3.9 Gwei 指定我们愿意为每单位 Gas 支付的最高价格, Gas Price 的单位才是以太坊中的单位, 比如 Wei、GWei;
- Gas Price 是你实际报给矿工的 Gas 单价, 而 Gas Limit 表明你最多愿意为这笔交易支出多少个单位的 Gas
什么是汽油 Gas?为什么会有 Gas?Gas 的作用是什么?
汽车消耗的汽油的单位是升,在以太坊里面汽油的单位就叫做 Gas 以太坊里如果 Gas 不够,交易会被直接回滚;
使用 Gas 去调节手续费 Gas 是以太坊虚拟机(EVM)内部流通的货币, 以太坊虚拟机用 Gas 来对交易打包、智能合约执行等操作收取费用。 例如:调用某智能合约的接口,每个操作会产生特定的费用, 以太坊就可以对更加复杂的智能合约收取更多的费用。