在我们最近的文章中,我简要地讨论了区块构建者在MEV供应链网络中所扮演的重要角色。区块构建者的主要责任是将Mempool中的交易与搜索者构建的盈利捆绑包相结合。
在本文中,我将指导您逐步计算区块构建者的成本和收益。
让我们以一个具体的区块为例,区块号为17419900。您可以在Ethscan网站上搜索它,并通过额外数据或费用接收方交易来识别其区块构建者。显然,此区块是由Flashbots Builder生产的。
在区块构建者负责的区块末尾,区块构建者还会奖励提议该区块的验证者。在本例中,flashbots-builder.eth向验证者的地址发送了0.1919321个以太币,作为MEV-boost奖励和区块构建者的成本。
区块构建者的收入分为两部分。第一部分是区块奖励,通过从交易费中减去燃烧费用来计算。在本例中,金额为0.18263526个以太币。第二部分是验证者直接支付给区块构建者的款项。搜索者可以选择直接向区块构建者支付一定数量的以太币。这种行为通常通过区块内部交易来实现。以下是一个示例:0x9ba88D向flashbots-builder.eth转移了0.012998个以太币。
这意味着在该区块中,flashbots builder的总收入为:
0.18263526 + 0.012998 - 0.1919321 = 0.00370116个以太币
区块构建者有时会补贴他们的操作以获得更大的市场份额,从而导致收入为负的区块。Delphi Digital的文章提到了构建者0x69作为例子,他们成功地为大部分区块提供补贴,同时仍然获得利润。值得注意的是,他们通过某些区块获得了显著的利润,比如区块16067709(利润76个以太币)和区块16067699(利润139个以太币)。这种策略性使用补贴是为了抢占市场。在区块构建行业中,是一个赢者通吃的情况。尽管利润通常很薄,但有可能获得可观的以太币回报。
如果您想要分析以太坊区块相关的数据,您可以使用以下查询来检索每个区块中记录的最后一笔转账(data:0x)交易。该查询可以在以太坊区块链中识别和选择每个区块的最新交易。
with indexs as (
select
block_number,
max(transaction_index) as transaction_index
from
ethereum.transactions
where block_timestamp>'2023-04-01'
group by block_number
)
select
block_number,
block_timestamp,
from_address,
to_address,
Revenue as value/1e18,
input
from
ethereum.transactions
where (block_number,transaction_index) in (select * from indexs)
and input = '0x'
order by block_number desc
- 查询开始时创建了一个名为
indexs
的临时数据集。该数据集包含两列:block_number
和transaction_index
。它是通过查看ethereum.transactions
表,并选择每个唯一block_number
的最高transaction_index
来创建的。只考虑block_timestamp
晚于'2023-04-01'的行。indexs
中的数据按block_number
进行分组。 - 查询的主要部分从
ethereum.transactions
表中检索了特定信息。它选择了以下列作为输出:block_number
,block_timestamp
,from_address
,to_address
,Revenue
(计算为value/1e18
),以及input
。 - 查询根据两个条件过滤了
ethereum.transactions
表中的行:block_number
和transaction_index
的组合应与indexs
集中的值匹配。这确保只包含具有匹配的block_number
和transaction_index
值的行。input
列中的值应完全为'0x'。
- 然后根据
block_number
按降序排列结果。这意味着输出将按照最高的block_number
到最低的进行排序。
简单来说,这个查询从ethereum.transactions
表中检索了特定的信息。首先创建了一个临时数据集,用于识别
某个日期之后每个block_number
的最高transaction_index
。然后,它从表中选择所需的列,根据与block_number
,transaction_index
和input
值相关的条件过滤行,并最终按照block_number
的降序对结果进行排序。
您还可以使用以下代码将区块数据导入Excel。
运行**npm install axios
和npm install exceljs
**以安装所需的依赖项。
将您的SQL查询和在我们的文档中生成的任务ID放入查询行。
const axios = require('axios');
const excel = require('exceljs');
const options = {
method: 'POST',
url: '<https://api.chainbase.online/v1/dw/query>',
headers: {
accept: 'application/json',
'x-api-key': '您的API密钥',
'content-type': 'application/json',
},
data: {
task_id: 'xxxxxxx',
page: 1,
query: '您的SQL查询'
},
};
const workbook = new excel.Workbook();
const worksheet = workbook.addWorksheet('Data');
// 添加标题
worksheet.addRow(['区块编号', '区块时间戳', '源地址', '目标地址', '以太币', '输入']);
async function fetchData(page) {
options.data.page = page;
try {
const response = await axios.request(options);
if (response.data && response.data.data && Array.isArray(response.data.data.result)) {
const data = response.data.data.result;
for (const row of data) {
worksheet.addRow([
row.block_number,
row.block_timestamp,
row.from_address,
row.to_address,
row.ETH,
row.input,
]);
}
if (response.data.data.meta && response.data.data.meta.next_page) {
const nextPage = response.data.data.meta.next_page;
return fetchData(nextPage); // 返回Promise以确保按顺序获取
} else {
return true; // 表示已获取所有页面
}
} else {
console.error('无效的响应数据:', response.data);
return false; // 表示发生错误
}
} catch (error) {
console.error(error);
return false; // 表示发生错误
}
}
async function fetchAllData() {
let currentPage = 1;
const totalPages = 3; // 设置要获取的页面总数
while (currentPage <= totalPages) {
const success = await fetchData(currentPage);
if (!success) {
console.error('获取数据时发生错误。终止。');
return;
}
currentPage++;
}
await workbook.xlsx.writeFile('chainbaseData.xlsx');
console.log('Excel文件创建成功。');
}
fetchAllData();
通过分析这些数据,在我的情况下,我选择了选择最近的3000个区块的交易并分析了区块构建者的市场份额。
区块构建者 | 目标地址数量 | 以太币总和 |
---|---|---|
0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5 | 717 | 110.2250996 |
0x1f9090aae28b8a3dceadf281b0f12828e676c326 | 644 | 77.75061889 |
0x690b9a9e9aa1c9db991c7721a92d351db4fac990 | 536 | 75.93068564 |
0xdafea492d9c6733ae3d56b7ed1adb60692c98bc5 | 362 | 34.08247563 |
0xb4c9e4617a16be36b92689b9e07e9f64757c1792 | 120 | 9.349838553 |
0xbaf6dc2e647aeb6f510f9e318856a1bcd66c5e19 | 64 | 13.3957448 |
0xfeebabe6b0418ec13b30aadf129f5dcdd4f70cea | 49 | 9.565605888 |
0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97 | 30 | 2.632173092 |
0xce0babc8398144aa98d9210d595e3a9714910748 | 30 | 1.829768113 |
0x5124fcc2b3f99f571ad67d075643c743f38f1c34 | 26 | 0.893549901 |
0xbd3afb0bb76683ecb4225f9dbc91f998713c3b01 | 18 | 8.954708645 |
0x17d3c369932e200eab7264eca79e3f72a3f3d563 | 16 | 0.030609463 |
总的来说,计算区块收入对于了解MEV供应链网络中区块构建者的盈利能力至关重要。区块构建者的收入由区块奖励和验证者直接支付的款项组成。然而,有些构建者通过补贴来获得更大的市场份额,导致区块收入为负。通过分析以太坊区块相关的数据,可以从以太坊交易表中检索特定的信息,并使用代码片段将其导入Excel。分析这些数据可以帮助识别不同区块构建者的市场份额,并潜在地确定盈利的区块。总体而言,了解区块构建者的收入对于理解MEV供应链网络的经济学至关重要。