链上数据分析
1. BDOS Online 制作数据项目的优势
BO与传统开发相比,在整体规划上
- 省时间:开箱即用。节省搭建环境时间,无需装各种组件,无需申请各类账,各种丰富大数据组件工具随点随用,交互使用零成本;
- 省心力:标准化产品满足碎片化需求。实现DataOps全流程,不同角色的开发环境相互解耦,任一人员均可利用碎片化时间推进任务进展;
- 省投入:按需集成功能,随业务规模扩展。云原生编排,k8s自动化调度,初期分配很少资源,验证可执行路线后,资源扩展便捷;方便对不同区块链数据源进行扩展;
- 快速落地:边规划,边处理问题,双向补足,不冲突。顶层设计及具体实现可同步进行,变验证边调整整体流程,边调整整体流程边实现各步骤完善,快速迭代;
- 多租户:满足个人和企业多租户需求,不同用户在数据和应用使用上互不影响,支持将数据通过API接口及页面等多种形式提供。
BDOS Online | 传统方式 | |
时间利用率 | 开箱即用 | 花费90%时间在组建团队及环境搭建上 |
组织效率 | 标准化产品满足碎片化需求 | 组织完备的团队,协调多方人员才能有所推进 |
资源投入 | 按需集成功能,随业务规模扩展,便捷扩展不同数据源 | 初期就需要考虑清楚项目整体规模,不易减少及扩展 |
灵活性 | 边规划,边处理问题,双向补足,不冲突 | 需求变更复杂,消耗更多投入 |
机构多租户 | 用户在数据和应用使用上互不影响,实现多租户、鉴权、授权 | 无法实现项目中数据和应用的权限管理 |
2. 项目应用及数据概要设计
模块 | 描述 | 详细 |
实时查询 | 以太坊简介文字+概览信息 | 交易概览:总交易数未确认交易数总交易量(ETH)24H链上交易量地址概览:地址总数合约地址数普通地址数持币地址数代币概览:代币总数ERC-20代币ERC-721代币ERC-1155代币 |
交易hash/区块高度/外部账户地址/合约账户地址/代币地址查询 | 交易详情区块详情外部账户地址详情ETH净资产美元净资产同质化代币资产列表NFT代币资产列表合约账户地址详情代币地址详情 | |
交易列表(交易hash、时间、金额(ETH)) | 最新交易列表大额交易列表未确认交易列表交易详情 | |
区块列表 | 最新区块列表区块详情 | |
代币列表 | ERC-20代币代币地址列表代币交易列表ERC-721代币代币地址列表代币交易列表ERC-1155代币代币地址列表代币交易列表 | |
专题分析 | 24H/3D/7HtopN 区块的gas使用率topN 交易最大地址,交易次数最多地址饼图 交易类型曲线图 交易次数 |
3. 数据架构与物理模型
数据架构
- 数据采集层: 平台从区块链节点获取原始链上数据
- 数据处理层: 平台将原始数据以流式处理或批次处理的方式进行数据抽取、转换和加载。流式处理中,实时原始数据被源源不断地输入并被持续处理,通常意味着数据延迟低,分析结果时效性更高;而批次处理虽然数据延迟会稍高,分析结果时效性稍低,但更适用于大容量的数据处理。
- 数据存储层:经过处理后的数据会根据平台方预先定义的格式存储进数据集的各数据表中以待后续使用。
- 数据整合层:存储的数据会被聚合运算。计算可以是根据预先设定好的指标来进行的(metrics computation),也可以阶段性的(periodic)或是根据设定好的条件被触发的(event-driven aggregation)等。
- 数据分析层:运算完成的结果被实时地报告、输出。对于个人用户而言,我们主要在数据分析层与链上数据分析平台进行交互,提供Business Intelligence报告界面,以及主题可视化图表,同时提供主题分析处理完善后的好的数据API接口
4. BDOS Online 项目构建
4.1 项目核心应用
- 应用链接:https://2141a98a-a399-54bd-aa38-61bae65e29ae-0.online.linktimecloud.com/#/home
项目主页(输入输出)
项目流水线调度构建
5. 项目成果展示
首页
交易详情
区块详情
主题分析
6. Reference
6.1 以太坊数据解析
相关链接
获取方式
需构建批流合一的采集模式同时获取实时数据以及历史数据
获取方式 | 可获取数据源 | 文件类型 | 备注 |
stream | block/transation/log | txt | |
batch | block/transation/log/contract/receipts | csv | 运行30-40分钟,获取1.35G数据 |
6.2 数据Schema解析
6.3 相关概念解-Gas
- GAS 本质上,Gas 费用是以太坊的货币以太 (ETH) 支付的。 Gas 价格以 Gwei 标明,Gwei 本身就是 ETH 的一个单位–每个 Gwei 等于 0.000000001 ETH (10-9 ETH)
- GAS 本质上,Gas 费用是以太坊的货币以太 (ETH) 支付的。 Gas 价格以 Gwei 标明,Gwei 本身就是 ETH 的一个单位。每个 Gwei 等于 0.000000001 ETH (10-9 ETH) 以太坊网络交易费的计算方式在 2021 年 8 月的伦敦升级后发生了改变。
- 升级前: 假设 Alice 需要支付 1 ETH 给 Bob。 在交易中,gas 限额为 21,000 单位,gas 的价格是 200 gwei。 总费用为:Gas 单位(限额) * Gas 单价 例如 21,000 * 200 = 4,200,000 gwei 或者 0.0042 ETH 当 Alice 汇款时,将从 Alice 账户中扣除 1.0042 ETH。 Bob 将获得 1.0000 ETH。 矿工将得到 0.0042 ETH。
- 升级后: 假设 Jordan 需要向 Taylor 支付 1 ETH。 在交易中,矿工报酬限额为 21,000 单位,基本费用的价格是 100 gwei。 Jordan 支付了 10 gwei 作为小费。 使用上面的公式,我们可以计算 21,000 * (100 + 10) = 2,310,000 gwei 或 0.00231 ETH。
- 当 Jordan 发送钱时,将从 Jordan 账户中扣除 1.00231 ETH。 Taylor 将获得 1.0000 ETH。 矿工得到 0.00021 ETH。 0.0021 ETH 的基本费用被燃烧。
- 此外,Jordan 还可以为交易设定最高费用 (maxFeePergas)。 最高费用与实际收费之间的差额将归还给 Jordan。如:退款 = 最高费用 -(基本费用 + 优先费)。 Jordan 可以为执行交易费用设定一个最高金额,而不必担心在执行交易时“超额”支付基本费用。
- 相关链接:https://ethereum.org/zh/developers/docs/gas/
6.4 相关概念解释-代币标准
- 以太坊上目前为止总共发行了440698种erc20tokens+14071erc721tokens,二者总和454769,这两种代币标准代币就占据了以太坊上总代币类型的99%以上,基于其余各种较小众的代币标准发行的代币不足1%,其中erc20代币类型独占96.9%
- ERC20-同质化代币
- ERC721-非同质化代币 NTF
6.5 相关概念解释-交易类型
以太坊有三种不同类型的交易:
- 常规交易:从一个钱包到另一个钱包的交易。
- 合约部署交易:没有“to”地址的交易,数据字段用于合约代码。
- 执行合约:与已部署的智能合约进行交互的交易。 在这种情况下,“to”地址是智能合约地址
6.6 物理模型(摘要)
Blocks
Header | Explanation | Remarks |
gas_limit | Total gas limits set by the transactions in the block | |
gas_used | Total units of gas used by the transactions in the block | |
base_fee_per_gas | Every block has a base fee which acts as a reserve price. | The base fee is calculated independently of the current block and is instead determined by the blocks before it – making transaction fees more predictable for users. When the block is mined this base fee is “burned”, removing it from circulation. |
transaction_count |
Transactions(+Receipts)
Header | Explanation | Remarks |
transaction_hash/transaction_index/block_hash/block_number | ||
from_address/to_address | Sender/Receiver | |
nonce | The number of transactions made by the sender prior to this one | |
value | Value transferred in gwei | 1 gwei = 10^(-9) ETH |
gas | Prior to EIP-1559 upgradeUsed to calculate txn fees to Legacy txnstxn_fees = gas * gas_price (@start of txn) | |
gas_price | ||
max_fee_per_gas | Moving to EIP-1559, base_fee_per_gas(block-level), max_fee_per_gas and max_priority_fee_per_gas are added and used to txn pricing.base fee is burned completelypriority fee directly goes to the minerbase fee+priority fee must be less than max fee, if the sum exceeds the configured max fee, the priority fee is automatically adjustedgas_price = min(max_fee_per_gas, max_priority_fee_per_gas+base_fee_per_gas) (@start of txn) | |
max_priority_fee_per_gas | ||
cumulative_gas_used | total amount of gas used when this transaction was executed in the block | |
effective_gas_price | the actual value per gas deducted from the senders account | |
gas_used | the amount of gas used by this specific transaction alone | Unsuccessful txn:All the escrowed Ether is paid to the minerSuccessful txn:gas_used * gas price = fee paid to minerreminingGas * gas price = refund |
transaction_type | One of 0 (Legacy), 1 (Legacy) and 2 (EIP-15590) | |
status | either1(success)or 0(failure) |
留言
评论
${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}}说 · ${{item.date.slice(0, 10)}} 回复
暂时还没有一条评论.