Docs
Поиск⌘ K
  • Главная страница
  • О The Graph
  • Поддерживаемые сети
  • Protocol Contracts
  • Субграфы
    • Субпотоки
      • Token API
        • AI Suite
          • Индексирование
            • Ресурсы
              Индексирование

              5 минуты

              GraphTally Guide

              Learn about The Graph’s new payment system, GraphTally (previously Timeline Aggregation Protocol)⁠. This system provides fast, efficient microtransactions with minimized trust.

              Обзор

              GraphTally is a drop-in replacement to the Scalar payment system currently in place. It provides the following key features:

              • Эффективно обрабатывает микроплатежи.
              • Добавляет уровень консолидации к транзакциям и затратам ончейна.
              • Позволяет Индексаторам управлять поступлениями и платежами, гарантируя оплату запросов.
              • Обеспечивает децентрализованные, не требующие доверия шлюзы и повышает производительность indexer-service для нескольких отправителей.

              Специфические особенности

              GraphTally allows a sender to make multiple payments to a receiver, Receipts, which aggregates these payments into a single payment, a Receipt Aggregate Voucher, also known as a RAV. This aggregated payment can then be verified on the blockchain, reducing the number of transactions and simplifying the payment process.

              Для каждого запроса шлюз отправит вам signed receipt, который будет сохранен в Вашей базе данных. Затем эти запросы будут агрегированы tap-agent через запрос. После этого Вы получите RAV. Вы можете обновить RAV, отправив ему новые квитанции, что приведет к генерации нового RAV с увеличенным значением.

              Подробнее о RAV

              • Это денежные средства, которые ждут отправки в блокчейн.

              • Он будет продолжать отправлять запросы на агрегирование и гарантировать, что общая стоимость неагрегированных поступлений не превысит amount willing to lose (сумму, которую мы готовы потерять).

              • Каждый RAV можно выкупить один раз в контрактах, поэтому они отправляются после закрытия аллокации.

              Выкуп RAV

              При запуске tap-agent и indexer-agent все будет выполняться автоматически. Ниже приводится подробное описание процесса:

              1. Индексатор закрывает аллокацию.

              2. <recently-closed-allocation-buffer> period, tap-agent принимает все ожидающие поступления для этой конкретной аллокации и запрашивает агрегацию в RAV, помечая её как last.

              3. indexer-agent берет все последние RAVS и отправляет запросы на выкуп в блокчейн, который обновит значение redeem_at.

              4. В течение периода <finality-time> indexer-agent отслеживает, происходят ли в блокчейне какие-либо реорганизации, которые отменяют транзакцию.

                • Если он был отменён, RAV повторно отправляется в блокчейн. Если он не был отменён, он помечается как final.

              Адреса блокчейна

              Контракты

              КонтрактArbitrum Mainnet (42161)Arbitrum Sepolia (421614)
              TAP-верификатор0x33f9E93266ce0E108fc85DdE2f71dab555A0F05a0xfC24cE7a4428A6B89B52645243662A02BA734ECF
              AllocationIDTracker0x5B2F33d7Ca6Ec88f5586f2528f58c20843D9FE7c0xAaC28a10d707bbc6e02029f1bfDAEB5084b2aD11
              Escrow0x8f477709eF277d4A880801D01A140a9CF88bA0d30x1e4dC4f9F95E102635D8F7ED71c5CdbFa20e2d02

              Шлюз

              КомпонентEdge и Node Mainnet (Arbitrum Mainnet)Edge и Node Testnet (Arbitrum Sepolia)
              Отправитель0xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F4670xC3dDf37906724732FfD748057FEBe23379b0710D
              Подписанты0xfF4B7A5EfD00Ff2EC3518D4F250A27e4c29A22110xFb142dE83E261e43a81e9ACEADd1c66A0DB121FE
              Агрегаторhttps://tap-aggregator.network.thegraph.comhttps://tap-aggregator.testnet.thegraph.com

              Предварительные требования

              In addition to the typical requirements to run an indexer, you’ll need a tap-escrow-subgraph endpoint to query updates. You can use The Graph Network to query or host yourself on your graph-node.

              • Graph TAP Arbitrum Sepolia Subgraph (for The Graph testnet)
              • Graph TAP Arbitrum One Subgraph (for The Graph mainnet)

              Note: indexer-agent does not currently handle the indexing of this Subgraph like it does for the network Subgraph deployment. As a result, you have to index it manually.

              Руководство по миграции

              Версии программного обеспечения

              Требуемую версию программного обеспечения можно найти [здесь] (https://github.com/graphprotocol/indexer/blob/main/docs/networks/arbitum-one.md#latest-releases⁠).

              Шаги

              1. Indexer Agent

                • Следуйте [этому же процессу] (https://github.com/graphprotocol/indexer/pkgs/container/indexer-agent#graph-protocol-indexer-compents⁠).
                • Give the new argument --tap-subgraph-endpoint to activate the new GraphTally codepaths and enable redeeming of RAVs.
              2. Indexer Service

                • Полностью замените текущую конфигурацию на новую службу Индексатора rs⁠. Рекомендуется использовать образ контейнера⁠.
                • Как и в старой версии, Вы можете легко расположить Indexer Service горизонтально. Он по-прежнему не закреплен.
              3. TAP Agent

                • Всегда запускайте один единственный экземпляр TAP Agent⁠. Рекомендуется использовать образ контейнера⁠.
              4. Настройка Indexer Service и TAP Agent

                Конфигурация представляет собой файл TOML, совместно используемый indexer-service и tap-agent, снабженный аргументом --config /path/to/config.toml.

                Ознакомьтесь с полной конфигурацией⁠ и значениями по умолчанию⁠

              Для минимальной конфигурации используйте следующий шаблон:

              1# You will have to change *all* the values below to match your setup.2#3# Some of the config below are global graph network values, which you can find here:4# <https://github.com/graphprotocol/indexer/tree/main/docs/networks>5#6# Pro tip: if you need to load some values from the environment into this config, you7# can overwrite with environment variables. For example, the following can be replaced8# by [PREFIX]_DATABASE_POSTGRESURL, where PREFIX can be `INDEXER_SERVICE` or `TAP_AGENT`:9#10# [database]11# postgres_url = "postgresql://indexer:${POSTGRES_PASSWORD}@postgres:5432/indexer_components_0"1213[indexer]14indexer_address = "0x1111111111111111111111111111111111111111"15operator_mnemonic = "celery smart tip orange scare van steel radio dragon joy alarm crane"1617[database]18# The URL of the Postgres database used for the indexer components. The same database19# that is used by the `indexer-agent`. It is expected that `indexer-agent` will create20# the necessary tables.21postgres_url = "postgres://postgres@postgres:5432/postgres"2223[graph_node]24# URL to your graph-node's query endpoint25query_url = "<http://graph-node:8000>"26# URL to your graph-node's status endpoint27status_url = "<http://graph-node:8000/graphql>"2829[subgraphs.network]30# Query URL for the Graph Network Subgraph.31query_url = "<http://example.com/network-subgraph>"32# Optional, deployment to look for in the local `graph-node`, if locally indexed.33# Locally indexing the Subgraph is recommended.34# NOTE: Use `query_url` or `deployment_id` only35deployment_id = "Qmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"3637[subgraphs.escrow]38# Query URL for the Escrow Subgraph.39query_url = "<http://example.com/network-subgraph>"40# Optional, deployment to look for in the local `graph-node`, if locally indexed.41# Locally indexing the Subgraph is recommended.42# NOTE: Use `query_url` or `deployment_id` only43deployment_id = "Qmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"4445[blockchain]46# The chain ID of the network that the graph network is running on47chain_id = 133748# Contract address of TAP's receipt aggregate voucher (RAV) verifier.49receipts_verifier_address = "0x2222222222222222222222222222222222222222"5051########################################52# Specific configurations to tap-agent #53########################################54[tap]55# This is the amount of fees you are willing to risk at any given time. For ex.56# if the sender stops supplying RAVs for long enough and the fees exceed this57# amount, the indexer-service will stop accepting queries from the sender58# until the fees are aggregated.59# NOTE: Use strings for decimal values to prevent rounding errors60# e.g:61# max_amount_willing_to_lose_grt = "0.1"62max_amount_willing_to_lose_grt = 206364[tap.sender_aggregator_endpoints]65# Key-Value of all senders and their aggregator endpoints66# This one below is for the E&N testnet gateway for example.670xDDE4cfFd3D9052A9cb618fC05a1Cd02be1f2F467 = "https://tap-aggregator.network.thegraph.com"

              Примечания:

              • Значения для tap.sender_aggregator_endpoints можно найти в разделе шлюза.
              • Значения для blockchain.receipts_verifier_address должны использоваться в соответствии с разделом Адреса блокчейна с использованием соответствующего идентификатора чейна.

              Уровень лога

              • Вы можете установить уровень лога, используя переменную среды RUST_LOG.
              • Рекомендуется установить для него значение RUST_LOG=indexer_tap_agent=debug,info.

              Мониторинг

              Метрики

              Все компоненты предоставляют порт 7300 для запроса Prometheus.

              Графический интерфейс Grafana

              Вы можете скачать Графический интерфейс Grafana⁠ и импортировать.

              Панель запуска

              В настоящее время существует WIP-версия indexer-rs и tap-agent, которую можно найти здесь⁠

              ⁠Редактировать на GitHub⁠

              GraphcastТребования к поддерживаемым сетям
              На этой странице
              • Обзор
              • Специфические особенности
              • Подробнее о RAV
              • Выкуп RAV
              • Адреса блокчейна
              • Контракты
              • Шлюз
              • Предварительные требования
              • Руководство по миграции
              • Версии программного обеспечения
              • Шаги
              • Мониторинг
              • Метрики
              • Графический интерфейс Grafana
              • Панель запуска
              The GraphСтатусТестовая сетьБрундовые ресурсыФорумБезопасностьПолитика конфиденциальностиУсловия обслуживания