当前位置: 首页 > news >正文

Arweave 出块流程详解

文章目录

    • 1. 用户提交数据存储请求
      • 1.1 用户发起交易
      • 1.2 广播交易
    • 2. 矿工监听并打包交易
      • 2.1 矿工监听交易池
      • 2.2 矿工进行工作量证明(Proof of Work, PoW)
      • 2.3 矿工选择引用历史区块(Block Weave)
      • 2.4 打包交易进新区块
    • 3. 新区块的验证与广播
      • 3.1 新区块广播到网络
      • 3.2 其他节点验证新区块
      • 3.3 达成共识
    • 4. 数据的永久存储与全网确认
      • 4.1 区块永久存储
      • 4.2 矿工获得奖励
    • 5. 长期数据存取与维护
      • 5.1 存储证明机制(Proof of Access, PoA)
      • 5.2 数据的持续访问
      • 5.3 无需持续支付
    • 六. 总结

本文详细解释了Arweave网络从用户提交数据到区块被全网保存的整个出块流程。我们将一步步解析这个过程,包括数据存储、矿工打包、验证与共识以及最终的数据永久保存。


1. 用户提交数据存储请求

1.1 用户发起交易

  • 用户准备数据:用户使用Arweave钱包或其他与Arweave集成的应用程序上传想要永久存储的数据(例如文件、图片、文本等)。

  • 打包成交易:用户提交的数据会打包成一个“交易”(Transaction),包括以下内容:

    • 数据:实际要存储的内容(文件、文本、音频等)。
    • 交易信息:包括交易发起者的公钥、交易费用等。
    • 存储费:用户支付一次性永久存储费用(AR代币),费用根据数据大小动态确定。
  • 签名交易:用户用私钥对交易进行数字签名,确保交易的合法性。

1.2 广播交易

  • 广播到网络:签名后的交易被广播到Arweave网络,成为待处理交易(Unconfirmed Transaction),等待矿工打包进区块。

2. 矿工监听并打包交易

2.1 矿工监听交易池

  • 矿工节点监听交易池:Arweave网络中的矿工节点持续监听未确认交易池,挑选合法的交易打包。

2.2 矿工进行工作量证明(Proof of Work, PoW)

  • 工作量证明机制:矿工需要通过计算找到符合一定难度的哈希值,确保出块速度保持在每两分钟左右。

2.3 矿工选择引用历史区块(Block Weave)

  • 区块依赖性链(Block Weave):矿工在创建新区块时,不仅引用前一个最近区块,还引用多个历史区块,确保数据的可访问性和安全性。

  • 引用策略:矿工根据激励机制选择不同历史区块,引用较老的区块可获得更高奖励,因为这些数据可能被其他矿工抛弃。

2.4 打包交易进新区块

  • 打包过程:矿工将用户交易与其他未确认交易一起打包进新区块。新区块包含:
    • 区块头:包括前一区块哈希、工作量证明、时间戳等。
    • 交易列表:用户提交的交易。
    • 数据引用:历史区块的引用信息。

3. 新区块的验证与广播

3.1 新区块广播到网络

  • 矿工节点广播新区块:矿工完成工作量证明后,将新区块广播到全网。

3.2 其他节点验证新区块

  • 多层验证
    • PoW验证:其他节点验证新区块的工作量证明是否有效。
    • 交易验证:验证每笔交易的签名和费用。
    • 存储证明验证:检查新区块中引用的历史区块数据的有效性。

3.3 达成共识

  • 网络共识:当大多数节点确认新区块有效后,新区块正式加入Arweave区块依赖性链。

4. 数据的永久存储与全网确认

4.1 区块永久存储

  • 区块加入Block Weave:一旦新区块被确认,它会永久存储在Arweave的Block Weave结构中。引用机制确保历史区块数据的有效性。

  • 数据不可篡改性:数据一旦存储,任何修改都会导致整个链条的哈希失效,确保数据不可篡改。

4.2 矿工获得奖励

  • 矿工奖励机制:矿工成功打包区块后,获得AR代币奖励,激励矿工参与网络并维护存储数据。

5. 长期数据存取与维护

5.1 存储证明机制(Proof of Access, PoA)

  • 存储证明机制:矿工需证明自己保留了过去区块的数据,未来生成新区块时展示过去区块的一部分数据。

5.2 数据的持续访问

  • 用户数据的永久可访问性:一旦数据存储,任何人都可以通过交易ID在Arweave网络永久访问这些数据。

5.3 无需持续支付

  • 一次性存储费用:用户只需支付一次费用,数据就会永久保存,无需持续付费。

六. 总结

Arweave通过其独特的Block Weave结构,确保用户数据从提交到永久存储的每个过程安全、不可篡改、可访问。用户只需支付一次费用,数据就能永久存储,并且通过引用历史区块,矿工参与维护数据的长期可用性,形成了一个去中心化的永久存储网络。

相关文章:

  • 【优选算法】(第十一篇)
  • 排水系统C++
  • 对象存储极简理解(对象、存储桶)
  • kubeadm部署k8s集群,版本1.23.6;并设置calico网络BGP模式通信,版本v3.25--未完待续
  • Java基础 3. 面向对象
  • DevExpress WinForms中文教程:Data Grid - 如何添加或删除行?
  • 浏览器插件的标准项目结构通常包括以下几个目录和文件
  • c语言手撕内存池组件
  • 利用Puppeteer-Har记录与分析网页抓取中的性能数据
  • 网络安全 DVWA通关指南 DVWA Weak Session IDs(弱会话)
  • C++中数据类型的大小
  • 【spring中event】事件简单使用
  • 【MySQL】数据目录迁移
  • 前端 vue3 对接科大讯飞的语音在线合成API
  • 详细指南:如何有效解决Windows系统中msvcp140.dll丢失的解决方法
  • 时间复杂度分析经典问题——最大子序列和
  • 10个确保微服务与容器安全的最佳实践
  • 2017年终总结、随想
  • android 一些 utils
  • Docker入门(二) - Dockerfile
  • gf框架之分页模块(五) - 自定义分页
  • Java Agent 学习笔记
  • PHP变量
  • Sublime Text 2/3 绑定Eclipse快捷键
  • XML已死 ?
  • 从输入URL到页面加载发生了什么
  • 分享一份非常强势的Android面试题
  • 关于Flux,Vuex,Redux的思考
  • 基于 Babel 的 npm 包最小化设置
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序开发中的那些坑
  • 学习使用ExpressJS 4.0中的新Router
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • elasticsearch-head插件安装
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # SpringBoot 如何让指定的Bean先加载
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三)elasticsearch 源码之启动流程分析
  • (一)SpringBoot3---尚硅谷总结
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .Net插件开发开源框架
  • .NET分布式缓存Memcached从入门到实战
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .net网站发布-允许更新此预编译站点
  • // an array of int
  • @FeignClient注解,fallback和fallbackFactory
  • @开发者,一文搞懂什么是 C# 计时器!