Dapp知识记录总结

198 阅读5分钟

「本文已参与「新人创作礼」活动,一起开启掘金创作之路。」

概念

区块链简明发展史:比特币?以太坊?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 测试网络去访问, 反过来亦然,普通账户则在不同网络间是通用的

智能合约账户关键属性

  1. balance:智能合约账户所控制的资产余额
  2. storage:智能合约的相关数据会存储在这里,可粗暴的将其看做是 DApp 的数据库
  3. code:智能合约的字节码,由智能合约源代码编译而来, 存储在区块链上方便任何节点接受智能合约的函数调用
  4. TxHash:交易流水号,就像是你去银行转账银行给你业务回执的那个流水号
  5. Gas 是交易手续费的单位,而 Ether、Gwei 则是以太坊中代币的单位 燃料价格(GWEI)
  6. Gas Limit 表示在交易执行时最多消耗的汽油数量 指定我们最多愿意为执行该笔交易支付多少个 Gas
  7. Gas Used 表示实际使用了多少汽油
  8. Gas Price 表示汽油的价格是 0.0000000039 Ether,或者 3.9 Gwei 指定我们愿意为每单位 Gas 支付的最高价格, Gas Price 的单位才是以太坊中的单位, 比如 Wei、GWei;
  9. Gas Price 是你实际报给矿工的 Gas 单价, 而 Gas Limit 表明你最多愿意为这笔交易支出多少个单位的 Gas

什么是汽油 Gas?为什么会有 Gas?Gas 的作用是什么?

汽车消耗的汽油的单位是升,在以太坊里面汽油的单位就叫做 Gas 以太坊里如果 Gas 不够,交易会被直接回滚;

使用 Gas 去调节手续费 Gas 是以太坊虚拟机(EVM)内部流通的货币, 以太坊虚拟机用 Gas 来对交易打包、智能合约执行等操作收取费用。 例如:调用某智能合约的接口,每个操作会产生特定的费用, 以太坊就可以对更加复杂的智能合约收取更多的费用。