IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 区块链学习(3) -> 正文阅读

[区块链]区块链学习(3)

以太坊账户

  • 外部账户(externally owned accounts),由密钥控制。matemask钱包属于这一类
  • 合约账户(contract accounts),由智能合约的代码控制
    在这里插入图片描述

交易的数据结构

交易是包含以下数据的序列化二进制消息:
? nonce:由发起人EOA发出的序列号,用于防止交易消息重播。
? gas price:交易发起人愿意支付的gas单价(wei)。
? start gas:交易发起人愿意支付的最大gas量。
? to:目的以太坊地址。
? value:要发送到目的地的以太数量。
? data:可变长度二进制数据负载(payload)。
? v,r,s:发起人EOA的ECDSA签名的三个组成部分。
? 交易消息的结构使用递归长度前缀(RLP)编码方案进行序列化,该方案
专为在以太坊中准确和字节完美的数据序列化而创建

交易中的nonce

? 黄皮书定义: 一个标量值,等于从这个地址发送的交易数,或者对于关联
code的帐户来说,是这个帐户创建合约的数量。
? nonce不会明确存储为区块链中帐户状态的一部分。相反,它是通过计算发
送地址的已确认交易的数量来动态计算的。
? nonce值还用于防止错误计算账户余额。nonce强制来自任何地址的交易按
顺序处理,没有间隔,无论节点接收它们的顺序如何。
? 使用nonce确保所有节点计算相同的余额和正确的序列交易,等同于用于防
止比特币“双重支付”(“重放攻击”)的机制。但是,由于以太坊跟踪
账户余额并且不单独跟踪 UTXO ,因此只有在错误地计算账户余额时才会
发生“双重支付”。nonce机制可以防止这种情况发生。

交易中的gas

? 当由于交易或消息触发 EVM 运行时,每个指令都会在网络的每个节点上
执行。这具有成本:对于每个执行的操作,都存在固定的成本,我们把这
个成本用一定量的 gas 表示。
? gas 是交易发起人需要为 EVM 上的每项操作支付的成本名称。发起交易时,
我们需要从执行代码的矿工那里用以太币购买 gas 。
? gas 与消耗的系统资源对应,这是具有自然成本的。因此在设计上 gas 和
ether 有意地解耦,消耗的 gas 数量代表了对资源的占用,而对应的交易费
用则还跟 gas 对以太的单价有关。这两者是由自由市场调节的:gas 的价
格实际上是由矿工决定的,他们可以拒绝处理 gas 价格低于最低限额的交
易。我们不需要专门购买 gas ,只需将以太币添加到帐户即可,客户端在
发送交易时会自动用以太币购买汽油。而以太币本身的价格通常由于市场
力量而波动

gas的计算

? 发起交易时的 gas limit 并不是要支付的 gas 数量,而只是给定了一个
消耗 gas 的上限,相当于“押金”
? 实际支付的 gas 数量是执行过程中消耗的 gas (gasUsed),gas
limit 中剩余的部分会返回给发送人
? 最终支付的 gas 费用是 gasUsed 对应的以太币费用,单价由设定的
gasPrice 而定
? 最终支付费用 totalCost = gasPrice * gasUsed
? totalCost 会作为交易手续费(Tx fee)支付给矿工

可以通过eth.estimateGas 估计一下gas 的值

交易的 value 和 data

? 交易的主要“有效负载”包含在两个字段中:value 和 data。交易可
以同时有 value 和 data,仅有 value,仅有 data,或者既没有 value
也没有 data。所有四种组合都有效。
? 仅有 value 的交易就是一笔以太的付款
? 仅有 data 的交易一般是合约调用
? 进行合约调用的同时,我们除了传输 data, 还可以发送以太,从而交
易中同时包含 data 和 value
? 没有 value 也没有 data 的交易,只是在浪费 gas,但它是有效的

特殊交易:创建(部署)合约

? 有一中特殊的交易,具有数据负载且没有 value,那就是一个创建新
合约的交易。
? 合约创建交易被发送到特殊目的地地址,即零地址0x0。该地址既不
代表 EOA 也不代表合约。它永远不会花费以太或发起交易,它仅用
作目的地,具有特殊含义“创建合约”。
? 虽然零地址仅用于合同注册,但它有时会收到来自各种地址的付款。
这种情况要么是偶然误操作,导致失去以太;要么是故意销毁以太。
? 合约注册交易不应包含以太值,只包含合约的已编译字节码的数据有
效负载。此交易的唯一效果是注册合约

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:33:30  更:2022-03-08 22:33:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:01:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码