
Как настроить частный узел Ethereum с помощью GetBlock
18 июня 2025 г.В этом уроке вы настроите и зайдите свой собственныйЧастный узел EthereumНа GetBlock используются преимущества инфраструктуры GetBlock Plug-и Play, 99,9 % времени безотказной работы и многоцелевой поддержки, чтобы вы могли сосредоточиться на создании, а не на поддержании оборудования.
К концу этого руководства у вас будет выделенная, защищенная от Access-Token Ethereum JSON-RPC конечная точка, работающая на GetBlock, которую могут использовать только ваши приложения. Мы рассмотрим следующее:
- Создание учетной записи GetBlock и создание токена доступа
- Предоставление выделенной конечной точки узел Ethereum
- Защита конечной точки RPC с ограничениями IP и токенов
- Соединение и тестирование конечной точки с почтальоном, библиотеками Web3 и Metamask
Предварительные условия
Прежде чем начать, убедитесь, что у вас есть следующее:
- GetBlock Account- Зарегистрируйтесь на приборной панели GetBlock с учетной записью по электронной почте, Google или GitHub, затем проверьте свою электронную почту, чтобы разблокировать функции панели инструментов.
- Настройка учетной записи GetBlock
- Токен API Access- генерировать токен личного или командного доступа вDashboard → Access Tokensи скопируйте это где -нибудь в безопасности; Каждый запрос JSON-RPC на ваш узел будет включать этот токен.
- Аутентификация с токенами доступа
- Основное понимание взаимодействия Ethereum RPC и блокчейна-Вы должны чувствовать себя комфортно с обычными методами JSON-RPC, такими как
eth_blockNumber
Вeth_getBalance
, иeth_sendRawTransaction
Полем Если вы новичок в Ethereum RPC, просмотрите ссылку на API GetBlock Ethereum, прежде чем продолжить.
Шаг 1: Создание выделенной конечной точки узла Ethereum
Что такое выделенная конечная точка узла?
АВыделенная конечная точка узлаявляется частным URL, который ссылается на один Ethereum Full или Archive Node, размещенный GetBlock. Поскольку аппаратная и полоса пропускная способность зарезервирована только для вашего проекта, вам не приходится иметь дело с замедлением от других пользователей или ограничений по цене Public-RPC. GetBlock обеспечивает 24/7 поддержку для каждого выделенного узла и обещанийДоступность 100%, предлагая конфиденциальность самодовольного узла без хлопот самостоятельно управлять им.
Ключевые преимущества
- Изоляция и надежность- Эксклюзивные ресурсы и гарантированное время безотказной работы.
- Настройка- Выберите тип узла, реализацию клиента и интерфейс API, которые наилучшим образом соответствуют вашему стеку.
- Масштабируемость- Добавьте неограниченные токены доступа или разверните дополнительные выделенные узлы по мере роста трафика.
Шаг за шагом: создать конечную точку
- Войдите в приборную панель GetBlock.
- В моих конечных точках нажмите «Добавить конечную точку».
- Выберите Ethereum в списке протоколов.
- ВыбиратьMainnetилиТестовая сеть(например, Сеполия).
- Выберите необходимыйИнтерфейс API(Http json-rpc, websocket или graphql).
- Нажмите Get. GetBlock сразу же выпускает URL -адрес конечной точки и свежий токен доступа, например,
https://go.getblock.io/<ACCESS-TOKEN>/
Полем
Вы можете повторить эти шаги, чтобы генерировать любое количество токенов; Каждый из них является независимым, ограниченным скоростью канал для одного и того же узла.
Параметры конфигурации
Когда волшебник откроется, настраивайте узел перед проверкой:
Вариант | Цель | Типичный выбор |
---|---|---|
Тип узла |
|
|
Узел клиент | Выберите внедрение Ethereum, которую вы предпочитаете (например,ГетВЭригонВНеэрминд) | Гетдля широкой совместимости |
Интерфейс API | Давать возможностьJSON-RPCВWebSocket, илиGraphqlконечные точки. | JSON-RPC + WebSocket для поддержки подписок |
После того, как вы подтвердите настройки и завершенную оплату, GetBlock предоставит узел (обычно через несколько минут). Новая выделенная конечная точка появится подПанель инструментов → мои конечные точки- готовы к усилению безопасности, которое мы выполним на следующем шаге.
Шаг 2 - Настройка узла Ethereum
Понимание файлов конфигурации GetBlock
GetBlock позволяет прикрепить маленькийФайл конфигурациикаждому выделенному узлу. Файл читается базовым клиентом Ethereum (Geth, Erigon или Nethermind), когда запускается служба, поэтому вы можете сохранить все флаги времени выполнения, выбор RPC-модулей и варианты хранения в одном месте вместо жесткого кодирования в вашем приложении. Поскольку файл живет в контейнере узла, а не в вашей кодовой базе, он также не позволяет вам случайно совершать учетные данные или IP -адреса в публичное репо.
Типичные разделы, которые вы можете разместить в файле, включают:
Категория | Что вы контролируете | Примеры* |
---|---|---|
Сеть | Идентификатор цепи, режим синхронизации, контрольная точка, сверстники |
|
RPC / API | Включенные модули, порты http/ws, лист с разрешением хоста |
|
Хранилище | Глубина обрезки, размер базы данных, архивный режим |
|
Безопасность | Домены CORS, секреты JWT, пределы ставок |
|
Регистрация / отслеживание | Мервесность, отладка, трассировщик, путь файла журнала |
|
*Имена параметров Следите за синтаксисом вверх по течению GETH; Эригон и Нетерминд разоблачают те же концепции под своими собственными флагами.
Приятно знать:
Если вы пропустите файл, GetBlock Boots The Node с помощью проверенных в бою по умолчанию. Добавление файла конфигурации является необязательным, и вы можете обновить его в любое время. Новый файл применяется после автоматического перезапуска, который обычно заканчивается через пару минут.
Загрузка пользовательской конфигурации
Откройте узел на приборной панелиИдти вПанель инструментов → мои конечные точки, щелкните выделенный узел Ethereum, который вы создали на шаге 1, и выберитеНастройкиПолем
Выберите «Файл конфигурации»Появляется панель, где вы можете перетаскивать файл (
config.toml
Вconfig.json
, или простой текст) или вставьте содержимое напрямую.Сохранить и перезапуститьНажиматьСохранятьи подтвердить. Получить очереди бесшовного перезапуска; Как только значок статуса переключается наБег, новые параметры живут.
ПроверятьВызовать легкий метод, такой как
eth_blockNumber
Полем Если вы изменили порт RPC или отключили модуль, вызов потерпит неудачу, позволяя вам поймать неправильные конфигурации перед использованием основной сети.
С настройкой конфигурации ваш специальный узел Ethereum теперь соответствует требованиям к производительности и безопасности вашего проекта. В следующем разделе мы заблокируем конечную точку еще дальше, ограничив, кто может достичь интерфейса JSON-RPC.
Шаг 3 - Обеспечение конечной точки RPC
Почему безопасность RPC имеет значение
Открытый интерфейс JSON-RPC-это открытая дверь для вычислительной квоты вашего узла и, если вы разрешаетеeth_sendRawTransaction
- В Мемпул сети. Злоупотребление может запустить ваши единицы потребления GetBlock (CUS), чувствительные к утечке данные на цепочке или позволить атакующим перед фронтальными сделками. Обратитесь к URL -адресам конечной точки как пароль и заблокируйте его, прежде чем перейти к производству.
Настройка управления доступа на панели инструментов
- Генерировать токен
- Перейти кПанель инструментов → конечная точка → Добавить токен доступа → новый токенПолем
- Дайте ему имя (например,,продувка) и скопируйте строку 64-char в ваш менеджер паролей.
- Добавить IP-список разрешений
- В том же диалоге расширитьРазрешенные IP -адресаПолем
- Введите список, разделенный запятыми, такой как
203.0.113.10,198.51.100.0/24
Полем - НажиматьСохранять- Токен теперь отклонит запросы из любого другого источника.
- Утвердить сам узел (необязательно)
ОткрытьПанель инструментов → мои конечные точки → Настройкии переключить неиспользованные интерфейсы API (например, GraphQL).
Если вы загрузили пользовательскую конфигурацию на шаге 2, убедитесь, что включены только необходимые модули RPC (
eth,net,web3
является безопасным дефолтом).
Кончик:
Нужно кратко разоблачить конечную точку для локального тестирования? Создатьвременный токенБез IP -фильтра установите дату истечения и удалите его, когда вы закончите.
Убедитесь, что конечная точка заблокирована
- Запустите следующую команду в вашем терминале.
curl -X POST https://go.getblock.io/<TOKEN>/ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
Ожидаемый выход:
"result":"0xA1B2C3"
Для более систематической проверки, импорт GetBlock готовыйСборник почтальонаи запуститьПингиeth_blocknumberЗапросы в соответствии с вашей ограниченной сетью. Они должны добиться успеха; Те же самые вызовы из незарегистрированного IP провалится.
После того, как ваша конечная точка пройдет эти тесты, вы защищены от трафика привода и утечек учетных данных, готовых перейти к функциональному тестированию на следующем шаге.
Шаг 4 - Тестирование подключения RPC
Используйте почтальон для быстрых, повторяющихся тестов
Visual UI Postman позволяет легко стрелять в вызовы JSON-RPC в вашей совершенно новой конечной точке без написания кода. GetBlock поддерживаетОфициальная коллекция почтальонаЭто уже содержит образец запросов для каждой поддерживаемой цепочки и метода.
- Импортировать коллекцию
- Скачать
GetBlock.postman_collection.json
Файл по ссылке выше. - В почтальон, нажмитеИмпорт → Файли выберите файл JSON. Новая папка рабочей области с именемПолучитьпоявляется.
- Скачать
- Создать среду
- НажиматьСреда → +Полем
- Добавьте две переменные:
Переменная | Начальное значение |
---|---|
|
|
|
|
Сохраните и выберите среду в верхнем правом углу почтальона.
- Отправьте свой первый запрос
ОткрытьEthereum → Eth_blocknumberв импортированной коллекции.
НажиматьОтправлятьПолем Если соединение здоровое, тело отклика выглядит как:
{ "jsonrpc": "2.0", "id": "getblock.io", "result": "0xA1B2C3" // latest block height in hex }
Пример RPC -тесты
Вы можете убедиться, что ваша конечная точка является как достижимой, так и полностью синхронизированной, сделав простые вызовы JSON-RPC. Например, вызовeth_blockNumber
Метод проверяет текущую высоту блока и подтверждает, что узел обновлен; тело запроса выглядит так:
{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":"1"}
Чтобы осмотреть баланс ETH конкретной учетной записи в последнем блоке, используйтеeth_getBalance
метод Просто замените{{ADDRESS}}
С учетной записью вы хотите запросить:
{"jsonrpc":"2.0","method":"eth_getBalance","params":["{{ADDRESS}}","latest"],"id":"1"}
Каждый из этих вызовов потребляет только одну вычислительную единицу (CU) и должен вернуть ответ почти мгновенно в здоровой выделенной конечной точке. Для получения полного списка поддерживаемых методов Ethereum JSON-RPC см. Ссылку GetBlock API.
Устранение неполадок общих ошибок
Общая проблема, с которой вы можете столкнуться, - это ответ HTTP 403 с сообщением «Неверный проект или токен». Обычно это означает, что токен доступа, который вы использовали, неправильно или истек. Чтобы исправить это, убедитесь, что токен точно соответствует тому, что в вашей панели приборной панели. При необходимости создайте новый токен, перейдя на панель Dashboard → Access Token.
Если вы получите ошибку HTTP 403, в которой говорится, что «IP-адрес не допускается», это означает, что ваш IP нет в списке разрешения токена. Вы можете исправить это, добавив IP -адрес вашего компьютера или подходящий диапазон CIDR в настройки токена. Другой вариант - использовать VPN, который направляет запросы через утвержденный адрес.address.
Иногда ваш звонок JSON-RPC возвращаетсяnull
Полем Обычно это происходит из -за опечатки в вашем запросе или с использованием метода, который узел не поддерживает. Тщательно проверьте свой запрос на примеры в коллекции почты, чтобы найти какие -либо ошибки, и убедитесь, что вы используете один из документированных методов.
Наконец, если ответы будут медленными или времени, это может быть связано с тем, что вы просите очень большой блок данных или заторы сети. В этом случае попробуйте переключиться с HTTP на WebSocket, который может лучше обрабатывать более крупные потоковые ответы. Вы также можете проверить проблему, сделав простой звонок, напримерeth_blockNumber
, чтобы увидеть, является ли это проблемой сети или проблемой с конкретным методом, который вы используете.
Однажды обаeth_blockNumber
иeth_getBalance
Вернуться чисто, вы подтвердили, что:
- Ваш токен доступа действителен.
- Узел доступен через HTTPS.
- Интерфейс RPC предоставляет правильные данные.
С уверенностью в вашей связи вы готовы автоматизировать запросы из кода - или изучить расширенные интеграции в следующих шагах.
Шаг 5 - Интеграция библиотек Web3(Дополнительный расширенный шаг)
Современные DAPPS редко называют JSON-RPC «вручную». Вместо этого они используют помощников JavaScript, таких какWeb3.jsилиEthers.jsЭтот RAP RPC в дружелюбном API на основе обещаний. Ниже приведены два быстрых пута; Выберите любую библиотеку, которая уже использует ваш стек.
Использование web3.js (в проекте узла/React)
Установите пакет
npm install web3 # or: yarn add web3
Смойте web3 с вашей конечной точкой GetBlock
const Web3 = require('web3');
Предупреждение ⚠: Никогда не обращайте внимания на ваш токен-загрузка от Env Vars или секретного менеджера const web3 = new Web3 ('https://go.getblock.io/<Access-token>/');
- Дым-тестирование соединения
const latest = await web3.eth.getBlockNumber();
console.log('Current block:', latest);
Создать учетную запись броска
const acc = web3.eth.accounts.create(); console.log(acc.address, acc.privateKey);
Отправить простую передачу значения (Testnet)
const tx = { to: '0xReceiverAddress', value: web3.utils.toWei('0.001', 'ether'), gas: 21_000, }; const signed = await web3.eth.accounts.signTransaction(tx, acc.privateKey); const { transactionHash } = await web3.eth.sendSignedTransaction(signed.rawTransaction); console.log('Tx hash:', transactionHash);
Использование ethers.js (в проекте узла/TypeScript/Vite)
Установить эфиры
npm install ethers # or: yarn add ethers
Создать поставщика
import { ethers } from 'ethers'; // Environment variable keeps the token out of Git const provider = new ethers.JsonRpcProvider( `https://go.getblock.io/${process.env.GETBLOCK_TOKEN}/` );
Запросить цепь
const block = await provider.getBlockNumber(); console.log('Block height:', block);
Отправить необработанную транзакцию
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider); const txResp = await wallet.sendTransaction({ to: '0xReceiverAddress', value: ethers.parseEther('0.001'), }); const receipt = await txResp.wait(); console.log('Mined in block', receipt.blockNumber);
При использовании библиотек Ethereum выберите тот, который подходит вашему коду и предпочтениям. Если вы занимаетесь более старыми проектами или предпочитаете классический стиль обратного вызова Web3.js, то Web3.JS - хороший выбор. Но если вы создаете новые приложения в TypeScript и нуждаетесь в сильной поддержке Bigint с современным интерфейсом подписи, Ethers.js - лучший выбор.
Обе библиотеки заряжаются одинаковоВычислительные единицы (CUS)в соответствии с вызовом RPC, поэтому выбор в основном эргономичен. В любом случае не забудьте:
- СохранитьТокен доступаВ безопасном месте (Dotenv, менеджер Secrets AWS, Github Actions Secret).
- ПредпочитатьWebSocketURL-адреса для событий в реальном времени (
eth_subscribe
) и вернуться к HTTPS для нормальных запросов. - Повторно используйте экземпляр поставщика или Web3 в вашем приложении, чтобы избежать ненужных рукопожатий TCP.
С рабочим поставщиком в коде, ваше приложение теперь может прочитать данные в цепочке, сообщения о подписи и трансляции транзакций через ваш личный узел GetBlock. Далее: необязательно подключить конечную точку в Metamask для локальной отладки и тестирования фронта.
Шаг 6 - Соединение Metamask к вашему частному узлу Ethereum(необязательный)
Зачем подключать Metamask к вашему узлу?
Подключив Metamask к своему собственному узлу, вы можете подписать и отправлять транзакции прямо из своего браузера или мобильного кошелька без использования общего общественного пула RPC. Это дает вам истинное сквозное тестирование. Ваша фронта DAPP, бэкэнд -сервисы и кошелек используют одну и ту же конечную точку, поэтому блокируемые номера и оценки цены газа остаются синхронизацией, обеспечивая плавное пользовательское впечатление. Во время высокого спроса в сети вы не сталкиваетесь с перегрузкой или дроссельными, как с общественными шлюзами, такими как Infura, потому что ваши запросы проходят через ваш личный узел.
Однократное руководство по настройке
A. Добавить GetBlock RPC всуществующийсеть
- Скопируйте свою конечную точку HTTPS, например,
https://go.getblock.io/<ACCESS-TOKEN>/
- В Metamask щелкните сеть сети (например, «Ethereum mainnet»).
- Нажимать▼ ➝ Добавить URL RPCПолем
- Вставьте конечную точку, дайте ему этикетку, напримерGetBlock APIи ударитьДобавить URLПолем
Теперь вы можете переключиться между RPC Metamask по умолчанию и вашим частным узлом в любое время.
Б. ДобавитьновыйПользовательская сеть (если она не указана)
- Нажмите на выпадающую сеть ➝Добавить пользовательскую сетьПолем
- Заполните форму:
Поле | Ценить |
---|---|
Сеть название | Что угодно (например,Сеполия GB) |
RPC URL |
|
Цепочка | Бегать |
Символ валюты |
|
Block Explorer | Необязательно (например, |
- НажиматьСохранять- Кошелек немедленно переключается на новую сеть.
# Optional: fetch the chain ID over RPC
curl -X POST https://go.getblock.io/<ACCESS-TOKEN>/ \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":"getblock.io"}'
Быстрая проверка
Для быстрой проверки сначала подтвердите, что баланс ETH, отображаемый в Metamask, соответствует балансу, который вы получили с помощьюeth_getBalance
На шаге 4. Затем убедитесь, что следующая транзакция, не показанная в метамаске, точно соответствует результату вашегоeth_getTransactionCount
вызов. Наконец, разверните «расширенные варианты» в форме отправки Metamask и убедитесь, что показанная цена на газ такая же, как и то, что вы получили черезeth_gasPrice
Полем Если какое-либо из этих значений расходится, дважды проверьте, что Metamask указывает на идентичный URL конечной точки, включая правильный токен доступа.
Подключение Metamask завершает полную цикл разработки: данные книги из GetBlock, транзакции, подписанные в браузере, и трансляции, направляемые обратно через ваш выделенный узел - не требуется общедоступных RPC.
Общий обзор методов Ethereum RPC (ссылка)
Ниже приведена краткая ссылка для вызовов JSON-RPC, которые вы будете использовать чаще всего против вашей частной конечной точки GetBlock. Каждый пример предполагает, что вы экспортировали свой токен доступа вGETBLOCK_TOKEN
Переменная среда, чтобы вы никогда не кодировали ее в управлении источником.
Аeth_callМетод позволяет вам выполнять функцию смарт-контракта только для чтения, не отправляя транзакцию или не неся каких-либо затрат на газ. Это идеально подходит для вызоваview
илиpure
Функции солидности. Минимальный корпус запроса выглядит как:
{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xToken","data":"0x70a082310000…"},"latest"],"id":"1"}
и ответ возвращает результат, кодируемый ABI-кодировкой напрямую.
Когда вам нужно принести весь блок по его номеру или тегу (например,"latest"
или"pending"
), использоватьeth_getblockbynumberПолем Вы можете запросить только поля заголовка плюс хэши транзакции или установить второй параметр наtrue
Чтобы получить полные объекты транзакции. Типичный вызов:
{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":"1"}
И вы получите заголовок блока вместе со списком транзакций.
Чтобы транслировать подписанную транзакцию - независимо от того, подписали ли вы ее локально через web3.js, ethers.js или аппаратный кошелек - используютeth_sendrawtransactionПолем Передайте RLP-кодируемую полезную нагрузку в качестве параметра:
{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f8…"],"id":"1"}
и узел отвечает новым хэшем транзакций.
Как только у вас есть хэш транзакции, позвонитеEth_getTransactionReceiptЧтобы получить детали выполнения, такие как статус успеха, используемый газ и журналы событий. Опросить эту конечную точку до егоresult
Поле не ноль:
{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xHash"],"id":"1"}
И вы получите полную квитанцию JSON.
Чтобы прочитать баланс ETH в данном блоке (не дефолт на"latest"
),eth_getbalanceМетод - ваш инструмент выбора. Поставляя адрес и блок-тег, вы возвращаете баланс в WEI (HEX-кодированный):
{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xAddr","latest"],"id":"1"}
Окончательно,eth_gaspriceВозвращает среднюю цену сети за последние 100 блоков, что помогает вам установить разумные сборы по умолчанию:
{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":"1"}
и узел отвечает с предложенной цены на газ в шестнадцатеричном кодировании Вей.
В GetBlock каждый из этих вызовов потребляет одну вычислительную единицу - за исключением того, что вы запросите полный список транзакций черезeth_getBlockByNumber
, что стоит дороже из -за большей полезной нагрузки ответа. Не стесняйтесь расширять свой инструментарий с помощью таких методов, какeth_estimateGas
, Подписки на WebSocket черезeth_subscribe
, или идентификации сетевой цепочки с помощью запросов сnet_version
Полем Для получения полной ссылки Ethereum JSON-RPC обратитесь к документации GetBlock Ethereum API.
Заключение
В этом руководстве вы начали с настройки своей инфраструктуры: вы создали учетную запись GetBlock, получили токен доступа и создали специальную конечную точку Ethereum для вашего проекта. Затем вы настраивали узел, выбрав реализацию клиента, выбирая режимы полного или архивного хранения и включив необходимые модули RPC для наилучшей производительности. Для обеспечения безопасности вы управляли токенами внимательно и настроили IP-списки Allists, поэтому только надежные бэк-концы и кошельки могут получить доступ к вашему интерфейсу JSON-RPC. Вы проверили функциональность, выполняя звонки, какeth_blockNumber
иeth_getBalance
Используя официальную коллекцию почтальона, убедитесь, что ваш узел остается в синхронизации и выполняет обещание работы с 99,9% GetBlock. Наконец, вы подключили конечную точку к своим приложениям: интеграция с Web3.js или Ethers.js для автоматизированного взаимодействия и установки Metamask для использования того же URL-адреса для плавного тестирования фронта.
Рекомендуется следующие шаги
Следить заЗдоровье конечной точки, Включите мониторинг и оповещения в разделе мониторинга и аналитики приборной панели. Здесь вы можете проверить использование вычислительного подъема, время отклика и частоту ошибок. Установите оповещения по электронной почте или Webhook, чтобы получить уведомление, прежде чем достичь пределов вашего плана. Для получения дополнительного контроля над поведением узлов изучите расширенные настройки, такие как параметры обрезки, режимы отслеживания или аутентификацию API на основе JWT. Если вам нужно больше емкости, добавьте больше выделенных узлов или переключитесь в режим кластера, чтобы поделиться нагрузкой. Держите важные документы для ежедневных задач: Руководство по настройке конечной точки, каталог ошибок и полная ссылка API Ethereum. Делая это, вы сохраните свой частный узел Ethereum в безопасности, простые в мониторинге и готовы поддержать все, от внутренней аналитики до DAPPS производственного класса.
Оригинал