Глоссарий
Слова, которыми пользуется этот обозреватель, определённые для Arc, а не для блокчейнов вообще, — потому что в Arc газ оплачивается в USDC, блоки окончательны в момент появления, а несколько знакомых заголовочных полей не несут вообще никакой информации.
Определения здесь, числа в другом месте
Эта страница определяет термины и не несёт живых счётчиков. Сколько именно каждой сети действительно держит Arcscan и где начинается и заканчивается его покрытие — в разделе Полнота данных: число, скопированное в глоссарий, — это число, которое тихо устаревает.Адреса и блоки#
- Адрес
- Двадцатибайтовый идентификатор аккаунта, записываемый как
0xи сорок шестнадцатеричных символов. Arcscan показывает и связывает ссылками форму с контрольной суммой EIP-55 в смешанном регистре, поэтому набранный с ошибкой символ обычно виден, а не проходит незамеченным. Адрес в Arc держит баланс USDC, а не баланс ETH — см. «Нативная валюта». - Архивная нода
- Нода, которая хранит историческое состояние, поэтому на вопрос вида «каким был этот баланс два миллиона блоков назад» всё ещё можно ответить. Две сети Arc здесь различаются, и это обратно тому, чего можно было бы ожидать:
/v1/chainсообщаетarchive: trueдля основной сети иarchive: falseдля тестовой, поэтому вопрос об историческом состоянии, на который основная сеть отвечает, в тестовой может получить отказ. - Базовая комиссия
- Цена за единицу газа, которую сам протокол устанавливает для блока; она несётся в заголовке как
baseFeePerGasровно так же, как в Ethereum, и показывается в Gwei на каждом блоке, который перечисляет Arcscan. Сожжённые комиссии блока Arcscan сообщает отдельно от их общей суммы: сожжённая величина — это израсходованный блоком газ, умноженный на его базовую комиссию, а остаток от общей суммы — приоритетные чаевые, которые оставляет себе предложивший блок. Обе величины в этой сети — суммы в USDC. - Хеш блока
- Тридцатидвухбайтовая свёртка заголовка блока и устойчивое удостоверение блока — она фиксирует хеш родителя, корни состояния и квитанций, метку времени и остальной заголовок. Arc использует обычные заголовки блоков Ethereum, поэтому хеш выглядит и ведёт себя так же, как везде. Поскольку
/v1/chainсообщает о финальности как обinstantв обеих сетях, высота здесь на практике не обзаводится вторым, конкурирующим хешем, как это бывает в сети с вероятностной финальностью. - Высота блока
- Положение блока в цепи, отсчитываемое от первого блока как от нуля. Arc выпускает блоки примерно дважды в секунду —
/v1/chainсообщает время блока 506 мс в основной сети и 536 мс в тестовой, — поэтому высоты растут на миллионы в месяц. Высота — это не то же самое, что покрытие: индекс тестовой сети в Arcscan начинается с блока 53 500 000, и высота тестовой сети ниже этой границы в цепи существует, но здесь не хранится.
Диапазоны, заголовки и финальность#
- Непрерывный диапазон
- Подряд идущие высоты, внутри которых ничего не пропущено. Arcscan описывает каждый свой поток индекса как набор диапазонов плюс
last_contiguous_block, и именно так он может сказать вам, что до одной высоты он полон, а выше неё у него есть дыры. Поток, о котором сообщается как об одном диапазоне с истиннымcontiguous_from_genesis, вообще не имеет дыр выше своего начального блока. Смысл публикации диапазонов в том, что пустой ответ можно подписать: это либо «ничего не происходило», либо «не проиндексировано», а это разные вещи. - Сложность
- Заголовочное поле, унаследованное от эпохи proof-of-work в Ethereum. В Arc оно равно
0x0— прочитано прямо из заголовков основной сети на высотах 1, 100 000, 10 000 000 и на голове цепи, — поэтому оно ничего не говорит о том, как был произведён блок, и Arcscan не подаёт его как статистику. В Arc ничего не майнится, и хешрейта, о котором можно было бы сообщить, не существует. - Нативный USDC в форме ERC-20
- Arc отдаёт свой нативный USDC через контракт по адресу
0x3600000000000000000000000000000000000000, чтобы обычные инструменты ERC-20 могли перемещать газовый актив. У двух форм разное число знаков: у нативного баланса — 18, у этого интерфейса ERC-20 — 6, и то и другое по/v1/chain, — а значит, одна и та же сумма денег имеет два написания, и Arcscan всегда подписывает, какое из них показывает. Собственного списка держателей у него нет: запрос такого списка получает отказ с пояснением, что его балансы и есть балансы аккаунтов и что их повторная индексация посчитала бы каждый аккаунт дважды. - Финальность
- Момент, с которого блок перестаёт быть предварительным и не может быть заменён.
/v1/chainсообщаетinstantдля обеих сетей Arc, поэтому транзакция, которую Arcscan показывает внутри блока, уже рассчитана: нет ни счётчика подтверждений, который нужно пережидать, ни различия междуsafeиfinalized, которое нужно было бы показывать, ни риска реорганизации, который читателю нужно было бы закладывать.
Газ, держатели и индекс#
- Газ
- Единица работы по исполнению, которую расходует транзакция, и то, из чего считается комиссия: израсходованный газ, умноженный на действующую цену газа. В Arc эта комиссия выражена в USDC, поэтому никакого ETH в ней нет. Каждый заголовок несёт ещё и лимит газа на весь блок — 30 000 000 на каждом заголовке основной сети из выборки для этой страницы — рядом с фактически израсходованным газом.
- Держатель
- Адрес с ненулевым балансом заданного токена. Arcscan ведёт индекс держателей в обеих сетях (
holder_index: true) и сообщает долю предложения у каждого держателя рядом с балансом и блоком, на котором этот баланс был актуален. Балансы в списке держателей помечены как вычисленные по истории переводов, а не прочитанные из состояния, а нативный интерфейс USDC исключён — см. «Нативный USDC в форме ERC-20». - Поток индекса
- Arcscan не индексирует «цепь» как одну вещь. Он ведёт отдельные потоки и публикует покрытие каждого независимо:
chain(блоки и транзакции),balancesиtraces. Они стоят на разных высотах, и пустота одного не делает остальные неполными — именно поэтому страница может быть авторитетна о блоке и при этом говорить «не проиндексировано» о его внутренних переводах. - Внутренняя транзакция
- Перевод стоимости или вызов, сделанный контрактом в ходе транзакции, а не аккаунтом, который её подписал. Внутренние транзакции не записываются в цепь как отдельные записи; они существуют только как часть трассировки. Arcscan может оттрассировать одну транзакцию по запросу и показать их, но общесетевой или поадресный список требует сохранённого потока
traces, а в основной сети этот поток сейчас не содержит ни одного блока — поэтому такие вопросы получают ответ «не проиндексировано», а не пустой список, который читался бы как «их не было».
Валюта, nonce и обрезка#
- Нативная валюта
- Актив, которым оплачивается газ. В обеих сетях Arc это USDC с 18 знаками, по
/v1/chain, — не ETH и не отдельный газовый токен, который нужно сперва раздобыть. Каждая комиссия и каждый нативный баланс, которые печатает Arcscan, — это сумма в USDC, и это самое частое неверное допущение, которое читатель приносит в Arc из другой сети. - Nonce
- Для аккаунта — число уже отправленных им транзакций: он задаёт порядок транзакций отправителя, и одно значение нельзя использовать дважды. Поле
nonceв заголовке блока — не связанное с этим наследие proof-of-work, и в Arc оно состоит из одних нулей на каждой высоте из выборки для этой страницы, поэтому статистикой ни о чём не является. - Предложивший блок
- Адрес, которому приписывается производство блока. Собственный API Arcscan называет его
proposer, тогда как поле заголовка JSON-RPC, откуда он берётся, по-прежнему называетсяminer. Блоки Arc предлагаются, а не намайниваются, поэтому это валидатор, которому приписан блок, а не победитель вычисления; Arcscan показывает адрес и любую метку, которая у него для него есть. - Обрезка
- Ноды Arc отбрасывают тела блоков и квитанции позади головы цепи, сохраняя заголовки. Поэтому у обрезанного блока есть полный, проверяемый заголовок — предложивший, израсходованный газ, корни, размер — и нет ни получаемого списка транзакций, ни суммы комиссий, и вместо них Arcscan печатает неизвестно, а не ноль. Часы у них разные: квитанции истекают раньше тел, поэтому у блока может быть перечислимый набор транзакций и при этом не быть получаемой суммы комиссий.
Откаты, трассировки и верификация#
- Откатившаяся транзакция
- Транзакция, которая была включена в блок и затем не прошла при исполнении, из-за чего её изменения состояния были отменены. Она всё равно израсходовала газ и всё равно уплатила комиссию — прочитанный для этой страницы пример из основной сети не переместил никакой суммы и уплатил 0,000869883 USDC, — поэтому откатившаяся транзакция не является ни успешной, ни бесплатной. API Arcscan сообщает её статус как
failed, и ни одна поверхность Arcscan не вправе отрисовать её как успех. - Тестовая сеть
- Сеть 5042002 под названием Arc Testnet, обслуживаемая отдельно по адресу
testnet.arc-scan.io. Это собственная сеть со своей историей и своими возможностями, и по двум пунктам она является зеркальным отражением основной: она может показать верифицированный исходник контракта и не может отвечать на вопросы об историческом состоянии. Индекс тестовой сети в Arcscan к тому же начинается с блока 53 500 000, а не с первого блока цепи, поэтому блоки ниже здесь не хранятся вовсе. - Трассировка
- Записанное дерево вызовов, которые сделала транзакция, фрейм за фреймом, где каждый фрейм указывает своё место в дереве путём
trace_address. Трассировка — это то, чем внутренние транзакции становятся видимыми. Arcscan трассирует отдельную транзакцию основной сети по запросу и возвращает настоящие фреймы; чего у него в основной сети нет — так это сохранённого индекса трассировок, и поэтому поадресные и общесетевые вопросы о внутренних переводах получают отказ, а не жидкий ответ. - Хеш транзакции
- Тридцатидвухбайтовая свёртка подписанной транзакции и тот идентификатор, который вы вставляете в поиск. Он существует с момента подписания транзакции — до того, как её включила хоть одна нода, — поэтому хеш может быть совершенно верным и при этом неизвестным Arcscan. При мгновенной финальности это окно короткое, но не нулевое, и Arcscan говорит «не найдено», а не гадает.
- Верифицированный исходник
- Контракт, для опубликованного Solidity-кода которого показано, что он компилируется в фактически развёрнутый байткод. Arcscan получает это от Sourcify, и две сети несимметричны. В основной сети Arc такого не существует —
verified_sourceравноfalseдля сети 5042 — и API объясняет причину своими словами:В тестовой сети Sourcify эту сеть действительно числит, поэтому исходник показать можно, — но то, что держит Arcscan, это кеш, наполняемый в первый раз, когда кто-нибудь спросит про конкретный контракт, поэтому число контрактов, исходники которых есть у Arcscan, много меньше числа верифицированных на стороне Sourcify.Sourcify does not list chain 5042, so no contract on this chain can be verified today — through Arcscan or through any other client of Sourcify. Nothing here is waiting on Arcscan; it is waiting on the chain being added upstream.
Где живут числа#
Ничто на этой странице не является счётчиком, и это сделано намеренно. Какие высоты держит Arcscan, какие потоки отстают и на какие вопросы каждая сеть отвечает отказом — всё это обозреватель публикует вживую сам, а сведено это в разделе Полнота данных. Если после термина отсюда вопрос остался, раздел Частые вопросы отвечает на те, что задают на самом деле, а разделы Блоки и Транзакции показывают эти слова на своих местах на настоящей странице.
Когда Arcscan чего-то знать не может, он так и говорит
Единственный продукт обозревателя — это доверие к нему, поэтому значение, которое не удалось получить, сообщается как неизвестное и никогда как ноль, а откатившаяся транзакция никогда не показывается как успешная. Если вы видите пустое место или объяснение там, где ждали величину, это задуманное поведение, а не сбой отрисовки.