Dev
经济下行阶段,一个 37 岁失业程序员的独白(经历/经验分享)
警告:区块链投资高风险,需要谨慎,谨慎,再谨慎!
实战案例四:DeFi 去中心化交易所
现实情况是期望代币可以在去中心化的交易场所中交换,这篇文章就是从一个简单案例来说明交换,流动性该如何实现。 我们需要先梳理一下,期望这个应用具备哪些功能:只用一个代币对建立交易场所交易收取 1% 的费用用户可以为 UseWeb3Token 添加或删除流动性为用户提供 LP 代币说明:实现会比这个例子复杂的多// SPDX-License-Identifier: SEE LICENSE IN LICENSE pragma solidity ^0.8.4; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract UseWeb3Exchange is ERC20 { address public useweb3TokenAddress; constructor(address useweb3TokenContract) ERC20("LP Token", "LP") { useweb3TokenAddress = useweb3TokenContract; } function getReserve() publ...
初识 Solidity 和 OpenZeppelin
Solidity 是一种面向对象的高级静态语言,用于实现智能合约,运行于 以太坊虚拟机,它支持继承,库和自定义类型等。pragma solidity ^0.8.0; contract HelloWorld { } Solidity 有三种类型的变量,熟悉它是因为变量的范围是由它们声明的位置所决定的:Local在函数内部声明且不存储在区块链上State存储在区块链上Global提供区块链相关的信息,它在运行时由以太坊虚拟机注入包括交易发送者,区块时间戳,区块哈希等全局变量语法知识,请阅读:https://docs.soliditylang.org/en/v0.8.9/index.html初识 OpenZeppelin说明:OpenZeppelin 是一家以太坊安全公司,其为流行的智能合约标准开发了一组合约,这些合约经过了大量的测试和安全审查,所以如果我们需要实现这些标准合约时,应该尝试找到 OpenZeppelin 提供的合约,而不是重头开始重写整个标准。https://github.com/OpenZeppelin/openzeppelin-contracts在 useweb3 ...
经济下行阶段,一个 37 岁失业程序员的独白(经历/经验分享)
警告:区块链投资高风险,需要谨慎,谨慎,再谨慎!
实战案例四:DeFi 去中心化交易所
现实情况是期望代币可以在去中心化的交易场所中交换,这篇文章就是从一个简单案例来说明交换,流动性该如何实现。 我们需要先梳理一下,期望这个应用具备哪些功能:只用一个代币对建立交易场所交易收取 1% 的费用用户可以为 UseWeb3Token 添加或删除流动性为用户提供 LP 代币说明:实现会比这个例子复杂的多// SPDX-License-Identifier: SEE LICENSE IN LICENSE pragma solidity ^0.8.4; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract UseWeb3Exchange is ERC20 { address public useweb3TokenAddress; constructor(address useweb3TokenContract) ERC20("LP Token", "LP") { useweb3TokenAddress = useweb3TokenContract; } function getReserve() publ...
初识 Solidity 和 OpenZeppelin
Solidity 是一种面向对象的高级静态语言,用于实现智能合约,运行于 以太坊虚拟机,它支持继承,库和自定义类型等。pragma solidity ^0.8.0; contract HelloWorld { } Solidity 有三种类型的变量,熟悉它是因为变量的范围是由它们声明的位置所决定的:Local在函数内部声明且不存储在区块链上State存储在区块链上Global提供区块链相关的信息,它在运行时由以太坊虚拟机注入包括交易发送者,区块时间戳,区块哈希等全局变量语法知识,请阅读:https://docs.soliditylang.org/en/v0.8.9/index.html初识 OpenZeppelin说明:OpenZeppelin 是一家以太坊安全公司,其为流行的智能合约标准开发了一组合约,这些合约经过了大量的测试和安全审查,所以如果我们需要实现这些标准合约时,应该尝试找到 OpenZeppelin 提供的合约,而不是重头开始重写整个标准。https://github.com/OpenZeppelin/openzeppelin-contracts在 useweb3 ...
Dev

Subscribe to icepy

Subscribe to icepy
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
在继续之前,我们需要更深入的了解以太坊平台上的一些概念,比如:Gas,挖矿,虚拟机等。
Gas 是理解以太坊网络最重要和最基本的方面之一,2021年8月由于伦敦升级,略微改变了 Gas 计算方式和运作方式,了解它是因为 Gas 是允许以太坊运行的燃料,就像汽车需要加油才能运行一样。
从伦敦升级开始,每一个区块都设置了基本的价格费用,这是将你的交易包含在区块内的最低价格,由网络根据对区块空间的需求而计算,这些费用将被烧毁。在基本费之外,还引入了小费的概念,基本上设置更高的消费,你能获得更高的优先级。
升级后 Gas 计算公式为:
gas fees = gas spent * (base fees + priority fees)
假设 A 向 B 支付了 1ETH,gas 的上限为 21000,假设基本费用为 100 Gwei,其中 A 决定支付 10 Gwei 的小费,那么计算结果为:
gas fees = 21000 * (100 Gwei + 10 Gwei)
即:2310000 Gwei,也就是 0.00231 ETH
挖矿是帮助创建新交易块以添加到区块链网络的过程,同时它也有助于保护网络免受攻击,以太坊目前仍然是 POW,预期在 2022 年中旬转换为 POS。
目前来说普通电脑挖矿已经无利可图了,虽然从技术上来说任何人都可以运行以太坊节点软件来进行挖矿,大多数挖矿的朋友都是选择加入矿池。
目前以太坊交易的开采过程:
用户通过钱包签署交易请求
交易通过节点广播到以太坊网络
听到新交易后,节点会将交易添加到内存池中(未包含在区块中的交易列表)
矿工验证每笔交易的有效性,然后矿工在他们的以太坊虚拟机中执行交易,待本区块中所有交易都经过验证且在 EVM 执行之后,矿工为区块创建合法的工作证明
矿工将证明和状态广播到网络中
其他节点听到新块的消息后,同步上述的动作
一旦其他节点都验证通过后,他们会将其添加到区块中,并接受新的区块状态
每个节点都会从内存池中删除块中包含的交易
重复上述的过程
以太坊网络是所有以太坊账户,智能合约和数据所在的环境,在任何区块中,以太坊都有一个全球唯一公认的块,而以太坊虚拟机正是定义了从区块到区块计算新的有效状态的规则。
说明:要理解以太坊虚拟机,需要对字节,内存,堆栈有一定了解
虚拟机的实现都必须遵守 以太坊黄皮书 中描述的规范,它本身就像一个堆栈机器,堆栈上的最大深度为 1024 个项目,堆栈上每一项都是 32 字节,关于虚拟机的运行过程,请参考 图解以太坊虚拟机。
权益证明相比工作量证明最大的优势在于能源采用的下降
在继续之前,我们需要更深入的了解以太坊平台上的一些概念,比如:Gas,挖矿,虚拟机等。
Gas 是理解以太坊网络最重要和最基本的方面之一,2021年8月由于伦敦升级,略微改变了 Gas 计算方式和运作方式,了解它是因为 Gas 是允许以太坊运行的燃料,就像汽车需要加油才能运行一样。
从伦敦升级开始,每一个区块都设置了基本的价格费用,这是将你的交易包含在区块内的最低价格,由网络根据对区块空间的需求而计算,这些费用将被烧毁。在基本费之外,还引入了小费的概念,基本上设置更高的消费,你能获得更高的优先级。
升级后 Gas 计算公式为:
gas fees = gas spent * (base fees + priority fees)
假设 A 向 B 支付了 1ETH,gas 的上限为 21000,假设基本费用为 100 Gwei,其中 A 决定支付 10 Gwei 的小费,那么计算结果为:
gas fees = 21000 * (100 Gwei + 10 Gwei)
即:2310000 Gwei,也就是 0.00231 ETH
挖矿是帮助创建新交易块以添加到区块链网络的过程,同时它也有助于保护网络免受攻击,以太坊目前仍然是 POW,预期在 2022 年中旬转换为 POS。
目前来说普通电脑挖矿已经无利可图了,虽然从技术上来说任何人都可以运行以太坊节点软件来进行挖矿,大多数挖矿的朋友都是选择加入矿池。
目前以太坊交易的开采过程:
用户通过钱包签署交易请求
交易通过节点广播到以太坊网络
听到新交易后,节点会将交易添加到内存池中(未包含在区块中的交易列表)
矿工验证每笔交易的有效性,然后矿工在他们的以太坊虚拟机中执行交易,待本区块中所有交易都经过验证且在 EVM 执行之后,矿工为区块创建合法的工作证明
矿工将证明和状态广播到网络中
其他节点听到新块的消息后,同步上述的动作
一旦其他节点都验证通过后,他们会将其添加到区块中,并接受新的区块状态
每个节点都会从内存池中删除块中包含的交易
重复上述的过程
以太坊网络是所有以太坊账户,智能合约和数据所在的环境,在任何区块中,以太坊都有一个全球唯一公认的块,而以太坊虚拟机正是定义了从区块到区块计算新的有效状态的规则。
说明:要理解以太坊虚拟机,需要对字节,内存,堆栈有一定了解
虚拟机的实现都必须遵守 以太坊黄皮书 中描述的规范,它本身就像一个堆栈机器,堆栈上的最大深度为 1024 个项目,堆栈上每一项都是 32 字节,关于虚拟机的运行过程,请参考 图解以太坊虚拟机。
权益证明相比工作量证明最大的优势在于能源采用的下降
No activity yet