How to create a RPC enabled private network in Ethereum | by Jayamine Alupotha | hackergirl | Medium

 

Содержание

How to create a RPC enabled private network in Ethereum

Let’s create a Geth private network with remote call procedure APIs.

Ethereum is a platform to create decentralized applications which uses Blockchain data structure. Please install the Geth client before going to other sections. You can find the details about the installation here.

After installing, run the following command in your command line terminal.

Geth help command returns the Geth commands and options.

Now create a folder in your home folder. In the following sections, we will call that folder “”. Make sure to keep that folder in a safe location.

Let’s create a private network by running the following command,

  • identity: Custom node name
  • rpc: Enable the HTTP-RPC server
  • rpcport: HTTP-RPC server listening port (default: 8545)
  • rpcapi: API’s offered over the HTTP-RPC interface
  • rpccorsdomain: Comma separated list of domains from which to accept cross origin requests (browser enforced)
  • datadir: Data directory for the databases and keystore
  • port: Network listening port (default: 30303)
  • nodiscover: Disables the peer discovery mechanism (manual peer addition)
  • networkid: Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby) (default: 1)
  • console: Start an interactive JavaScript environment

( Note: You can find more details about Geth commands and options by running “- -help” command.)

After running the above command, your Geth client will create a new private network for you.

Let’s create an account for you by running,

(Note: Make sure to remember the passphrase, because there is no other way to recover the account.)

The address of the account is “0x985a6a949e1790c35f9320a9db5020aac87e7c99”. Let’s unlock the account by running

Now start to mine coins(ether) by running,

and stop after some time by running

(Note: These coins are not valid outside the private network.)

JSON RPC API

You can access JSON RPC APIs via HTTP requests. Find more details about JSON RPC APIs here.

Ballerina Ethereum Connector

Ballerina is a programming language for integration. Ballerina Ethereum connector provides easy access to the Ethereum RPC APIs. You can find more details here. Let’s run a sample by running the following command,

Работа со смарт-контрактами через Ethereum RPC API

Всем привет. В этой статье мы рассмотрим основные приемы по публикации смарт-контрактов и взаимодействию с ними с использованием Ethereum RPC API. Обсуждаемые методы API позволяют решать такие задачи:

  1. Создание счёта.
  2. Создание корректного смарт-контракта.
  3. Получение информации со смарт-контракта.
  4. Изменение состояния смарт-контракта.
  • Некоторые общие замечания
  • Упаковка параметров и возвращаемых данных
  • Создание счёта и работа с ним
  • Создание смарт-контракта
    • Компиляция исходного кода смарт-контракта
    • Извлечение кода из транзакции
    • Рассчёт стоимости опубликования контракта
    • Выполнение транзакции на публикацию контракта
    • Создание контракта с параметрами
    • Идентификация методов контракта
    • Вызов методов запроса информации
    • Вызов методов, изменяющих состояние контракта

    Некоторые общие замечания

    1. Все предлагаемые действия иллюстрируются реальными данными из тестовой сети Rinkeby (на момент написания статьи).
    2. Состояние транзакций, счетов и смарт-контрактов в Rinkeby можно отслеживать по сайту https://rinkeby.etherscan.io/ (для подсети Ropsten будет, соответственно, https://ropsten.etherscan.io/).

    Упаковка параметров и возвращаемых данных

    Эта часть также носит общий характер и поэтому вынесена в отдельную главку, но её изучение можно отложить до момента, когда непосредственно понадобится использовать параметры или разобрать ответ смарт-контракта.

    Входящий (параметры) или исходящий пакет данных для контракта формируется по следующему принципу:

    • Фиксированные по длине типы данных (address, uint32, bytes32) передаются с выравниванием до 32-байтного слова (64 hex-цифры).
    • Переменные по длине типы данных (строковые, массивы) передаются по следующей схеме:
      • В позиции объекта в списке передается смещение блока с его данными относительно начала пакета (с выравниванием до 32-байтного слова).
      • В первом 32-байтном слове блока передается число единиц данных.
      • В последующих 32-байтных словах передаются сами данные.

      В строке 000 передается адрес 0х570f5d143ee469d12dc29bf8b3345fa5536476d9 .
      В строке 020 передается ссылка на блок, описывающий переменную типа string — 0x80 байт от начала блока.
      В строке 040 передается целое число 0х1234 .
      В строке 060 передается ссылка на блок, описывающий массив address[] — 0xc0 байт от начала блока.
      В строке 080 передается счетчик символов переменной типа string — 3 .
      В строке 0a0 передаются сами символы переменной типа string — слово New .
      В строке 0c0 передается счетчик элементов массива address[] — 2 .
      В строке 0e0 передается первый элемент массива address[] — 0хaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa .
      В строке 100 передается второй элемент массива address[] — 0хbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb .

      Внимание! Весь блок передается одним слитным массивом:

      Создание счёта и работа с ним

      Для создания нового счёта используется метод personal_newAccount , в качестве параметра которому передаётся пароль, который в дальнейшем будет использоваться для разблокировки счёта:

      В ответ приходит идентификатор счёта, в данном случае — 0xfbeda9914b78b58a0f0e810298f9d545f8379f8d .

      Все дальнейшие манипуляции мы будем производить с этого счета — 0xfbeda9914b78b58a0f0e810298f9d545f8379f8d .

      Теперь нам необходимо положить на него некоторую сумму для оплаты исполнения транзакций. Так как в тестовой сети Rinkeby поучаствовать в майнинге человеку со стороны невозможно, то для пополнения счетов предусмотрен специальный «кран», процедура использования которого описана здесь — https://faucet.rinkeby.io/.

      Для пополнения счета необходимо:

        Зарегистрироваться на github.com и создать новый gist:

      Создание смарт-контракта

      Технически смарт-контракт создаётся транзакцией, содержащей в поле данных байт-код контракта и блок параметров инициализации, если такие предусмотрены смарт-контрактом.

      Байт-код контракта для формирования транзакции создания может быть получен следующими способами:

      • Компиляцией из исходного текста смарт-контракта.
      • Извлечением из другой транзакции создания такого же смарт-контракта.

      Технически можно извлечь код транзакции непосредственно по идентификатору уже существующего смарт-контракта (метод eth_getCode), но этого делать НЕЛЬЗЯ, так как он выдаёт байт-код, подвергшийся специальной обработке при создании смарт-контракта (в частности, из него удаляются блоки инициализации).

      Компиляция исходного кода смарт-контракта

      Для компиляции исходного кода на Solidity я использую Remix — https://remix.ethereum.org/.

      Вводим текст контракта, если ошибок нет — в поле Bytecode будет находиться собственно байткод, в нашем случае:

      Извлечение кода из транзакции

      Для извлечения кода из транзакции используется метод eth_getTransactionByHash . В нашем примере «клонируемый» смарт-контракт был создан транзакцией 0xc4d20bb8f9eede45968fc6bc850397e92b9f263eeb11200615cc08562d46c2e7 .

      В тэге input ответа содержится байткод контракта.

      Обратите внимание, что если конструктор смарт-контракта предусматривает использование параметров, то кроме байт-кода в тэге input будут указаны значения параметров, следующих сразу следом за байт-кодом. При создании шаблона смарт-контракта для последующего клонирования можно использовать нулевые значения параметров.

      Расчет стоимости опубликования контракта

      Для расчета стоимости опубликования контракта используется метод eth_estimateGas , в параметрах которого следует указать номер счета (тэг from ), с которого будет создан контракт, а также байт-код контракта (тэг data ). В ответе будет указано необходимое количество Gas.

      Если конструктор смарт-контракта предполагает использование параметров, то они должны быть включены в запрос в тэге data сразу после байт-кода. В противном случае расчет Gas будет некорректным.

      Обратите внимание, что в некоторых случаях смарт-контракты содержат семантические (не синтаксические) ошибки, которые пропускаются компилятором, но приводят к неработоспособности контракта. Одним из признаков появления такой ошибки будет резкое — в разы, возрастание стоимости создания контракта.

      Выполнение транзакции на публикацию контракта

      Для публикации контракта используется метод eth_sendTransaction . В качестве параметров методу передаются:

      • номер счета, с которого создаётся контракт (тэг from );
      • стоимость публикации в Gas (тэг gas , берется из предыдущего пункта);
      • байт-код контракта с пристыкованным блоком параметров конструктора (тэг data , должен полностью совпадать с использованным в предыдущем пункте).

      В ответ мы получим номер транзакции:

      или сообщение об ошибке:

      Теперь необходимо дождаться завершения транзакции и получить результат её исполнения — создан контракт или нет. Для этого используется метод eth_getTransactionReceipt :

      Пока транзакция находится в «листе ожидания» (Pending Txn), будет выдаваться следующий ответ:

      После исполнения транзакции мы получим полную «квитанцию», в теге contractAddress которой будет содержаться адрес созданного смарт-контракта:

      Если в течении 5 минут квитанция не получена, то либо в сети проблемы, либо ваш узел не разослал проводку по сети. Чтобы понять истинную причину, следует просмотреть очередь Pending Txn на etherscan.io (https://rinkeby.etherscan.io/txsPending). Если транзакции там нет — значит, надо перезапустить клиент Ethereum и повторить публикацию заново.

      Теперь следует проверить, корректно ли создался смарт-контракт. Для этого можно использовать метод eth_getCode — получение кода контракта по его адресу:

      Если контракт создался некорректно, то будет получен ответ:

      Если в тэге result выдаются некоторые данные, отличные от 0x , то контракт создан успешно.

      Взаимодействие со смарт-контрактом

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

      При создании контракта (конструктор — функция Test ) ему передаются адрес Продавца ( seller_ ) и адрес Банка ( bank_ ). Метод GetStatus возвращает адресa Продавца, Банка и текущий статус контракта. Метод SetBankCert предназначен для сохранения в контракте некоторого цифрового идентификатора с переводом в статус «Confirmed».

      Создание контракта с параметрами

      Если конструктор смарт-контракта использует параметры (как в нашем демонстрационном примере), то они должны быть «упакованы» в соответствии с описанием «Упаковка параметров и возвращаемых данных» и присоединены в хвост к байт-коду контракта.

      В нашем случае, передача адреса Продавца 0x794ce6de39fa2d274438cc1692db04dfb5bea836 и адреса Банка 0xfbeda9914 b78b58a0f0e810298f9d545f8379f8d при создании смарт-контракта будет выглядеть следующим образом (байт-код контракта кончается на 0029 ):

      Еще раз обращаю внимание, что расчет Gas должен выполняться для всего блока Байт-код + Параметры, иначе контракт или не будет создан, или будет неработоспособен.

      Наш тестовый демо-контракт был создан по адресу 0x3d20e579f5befdc7d3f589adb6155f684d9a751c .

      Идентификация методов контракта

      Для идентификации метода смарт-контракта, к которому мы обращаемся, используются первые 4 байта (8 шестнадцатеричных цифр) от хэша описания метода.

      Например, для метода GetStatus демо-контракта описанием будет GetStatus() , а для метода SetBankCert — SetBankCert(address) . Особое внимание следует обратить на отсутствие пробелов в описании — были печальные прецеденты :(.

      Для определения хэша используется метод web3_sha3 , при этом строчное значение следует давать в шестнадцатеричном представлении (для GetStatus() это будет 0x4765745374617475732829 ):

      Соответственно, идентификатором метода GetStatus будет 0xabd95b95 , для метода SetBankCert идентификатор — 0x1bb71149 .

      Вызов методов запроса информации

      Для вызова методов, не связанных с изменением состояния контракта (например, для получения информации о его текущем статусе), может быть использован метод API eth_call .

      Запрос метода имеет такую структуру:

      Блок формируется следующим образом:

      где формируются, как указано в пункте «Упаковка параметров и возвращаемых данных».

      Если метод не предполагает наличия параметров, то блок состоит только из идентификатора метода.

      Например, для вызова метода GetStatus демо-контракта Test используется запрос:

      на который будет дан ответ:

      Разберем полученный ответ в соответствии с правилами пункта «Упаковка параметров и возвращаемых данных» и с учетом описания метода GetStatus — function GetStatus() constant returns (address, address, string retVal).

      Для удобства анализа разложим ответ на 32-байтные слова:

      Исходя из описания мы ожидаем получение следующего набора переменных: address, string. Таким образом:

      • в строке 000 находится адрес Продавца (тип address ) — 0x794ce6de39fa2d274438cc1692db04dfb5bea836
      • в строке 020 находится адрес Продавца (тип address ) — 0xfbeda9914b78b58a0f0e810298f9d545f8379f8d
      • в строке 040 находится ссылка на блок описания статуса контракта (тип string ) — блок начинается с адреса 060
      • в строке 060 находится счетчик символов в строке статуса контракта — 3 символа
      • в строке 080 находятся собственно символы статуса контракта в шестнадцатеричной кодировке — New

      Вызов методов, изменяющих состояние контракта

      Для вызова методов, изменяющих состояние контракта, должен быть использован метод API eth_sendTransaction .

      Запрос метода имеет такую структуру:

      должен иметь баланс, достаточный для выплаты . Кроме того, следуют учитывать, что контракт может содержать внутренние условия по контролю , как, например, в методе SetBankCert нашего демо-контракта.
      Блок формируется следующим образом:

      где формируются, как указано в параграфе «Упаковка параметров и возвращаемых данных».

      Если метод не предполагает наличия параметров, то блок состоит только из идентификатора метода.

      Например, для вызова метода SetBankCert(«0хf7b0f8870a5596a7b57dd3e035550aeb5af16607») демо-контракта, будут иметь следующий вид:

      Для определения стоимости исполнения, как и при создании смарт-контракта, используется метод eth_estimateGas , в который передаются всё те же параметры, которые затем будут переданы в методе eth_sendTransaction .

      Как показывает опыт, если в вызываемом методе содержится транзакционный вызов других смарт-контрактов, то сумма Gas может быть рассчитана неверно и транзакция не исполнится. Поэтому рекомендую указывать заведомо большее количество Gas, так как, по идее, излишек использован не будет. В таких случаях я указываю количество Gas, близкое к максимальному — 0х200000 .

      Далее вызываем метод eth_sendTransaction :

      и получаем в ответ идентификатор транзакции:

      Как и в случае с созданием смарт-контракта, ожидаем исполнения транзакции, запрашивая квитанцию (метод eth_getTran sactionReceipt):

      Как только квитанция пришла — транзакция исполнилась:

      Однако, само по себе исполнение транзакции вовсе не означает, что смарт-контракт переключился в нужное состояние, кроме того, могут не исполниться внутренние транзакционные вызовы других смарт-контрактов.

      На мой взгляд, самый надежный способ проверить, что всё отработало — снова запросить состояние смарт-контракта и убедиться, что всё изменилось «как надо».

      Разобрав ответ, мы увидим, что статус изменился на «Confirmed».

      Резюме

      В этом руководстве мы рассмотрели выполнение ряда задач, связанных с публикацией смарт-контрактов и взаимодействием с ними с помощью RPC API блокчейн-платформы Ethereum. Разобрались, как создавать счёт, как создавать корректный смарт-контракт, получать по нему информацию и изменять его состояние, а также выяснили, как с этим смарт-контрактом взаимодействовать.

      Если у вас возникнут дополнительные вопросы, рад буду ответить/подсказать.

      Что такое Infura?

      Что такое Infura

      Infura – это кластер узлов, который соединяет интерфейс пользователя (UI) dApps с внешним смарт-контрактом на блокчейне Ethereum. Провайдер Infura может обрабатывать подписание транзакции, а также подключение к сети Ethereum без необходимости синхронизировать ноду.

      Infura предоставляет инструменты и инфраструктуру, которые позволяют разработчикам легко переводить свое блокчейн-приложение от тестирования до масштабированного развертывания — с простым и надежным доступом к Ethereum и IPFS.

      Infura предлагает свои услуги бесплатно, и проект работает очень хорошо.

      Infura успешно устраняет одно из самых сложных препятствий для внедрения блокчейна. Запуск полного узла требует приличного уровня технических знаний, терпения, вычислительной мощности и памяти.

      Очень маловероятно, что обычный пользователь с минимумом технических знаний когда-либо будет запускать узел, так что Infura делает Эфириум более доступным.

      Infura была создана с целью предоставления стабильного и надежного доступа RPC к внутренним проектам в рамках ConsenSys. Поскольку сеть Ethereum начала интересовать большинство разработчиков блокчейна, основатели проекта решили, что Infura будет представлять широкий интерес для всей экосистемы ETH.

      Они публично выступили на Devcon2 в Шанхае и с тех пор сильно расширились, чтобы удовлетворить спрос разработчиков. Сегодня Infura является основой инфраструктуры Ethereum и IPFS и позволяет децентрализованным приложениям всех видов масштабироваться для размещения своих пользователей.

      В сети Ethereum необходимы утилиты, которые снижают барьер входа и упрощают доступ к данным Ethereum. К числу наиболее важных из них относятся продукты Infrastructure-as-a-Service (IaaS). Лидирующим является Infura, которая предлагает разработчикам набор инструментов для подключения своих приложений к сети Ethereum и другим децентрализованным платформам.

      Большинство самых значимых проектов блокчейна, таких как: Metamask, CryptoKitties, UJO, Radar Relay, Cipher Browser, uPort и другие — используют API Infura для подключения своих приложений к сети Ethereum.

      При этом Infura предоставляет фундаментальную инфраструктуру, необходимую для обработки как краткосрочных скачков, которые часто могут произойти во время запуска токенов, так и важных долгосрочных решений масштабирования. В среднем 10 миллиардов запросов JSON-RPC в день в сети Ethereum направляются через инфраструктуру Infura, что делает проект важной опорой экосистемы.

      Миссия и цели

      Сейчас нет никаких твердых альтернатив. Разработчики склонны подчеркивать необходимость того, чтобы больше людей запускали свои собственные узлы, и что облегченные узлы являются относительно доступным решением для большинства пользователей. Легкие узлы не требуют такой же вычислительной мощности и памяти, как синхронизация полного узла.

      INFURA не хранит аккаунты и поэтому Вы не можете использовать INFURA для подписания транзакций. Вместо этого используйте INFURA для получения одноразового доступа и расчета газа. Затем вам придется использовать свое собственное промежуточное программное обеспечение для обработки фактической подписи, поскольку для этого потребуется Ваш личный ключ.

      INFURA предназначена для:

      • DApps пользователей.
      • Разработчики DApp.
      • Сообщества Ethereum в целом.

      Какую пользу предоставляет INFURA? INFURA обеспечивает:

      1. Ethereum и IPFS.
      2. Серверная инфраструктура для автоматического развертывания CI/CD.
      3. Усовершенствование продуктов сервера Ethereum.
      4. Усовершенствование продуктов сервера IPFS.

      Nicola Cocchiaro ведущий разработчик Infura говорит:

      «Наша миссия – облегчить доступ к Ethereum и возможностям, которые он предоставляет. Мы всегда верили, что только при помощи масштабного внедрения можно полностью реализовать огромный потенциал Ethereum. За последние два года, это поставило нас в привилегированное положение, чтобы стать свидетелями роста экосистемы Ethereum, и этот рост был взрывным как для Ethereum, так и для нас»

      Команда проекта

      Команда проекта Infura состоит из 10 человек, большая часть – это разработчики, остальные менеджеры и представители проекта. В среднем это люди 1983 года рождения.

      Nicola Cocchiaro – основатель и главный разработчик проекта.

      Andrew Cohen – дизайнер.

      E.G. Galano – соучредитель, разработчик.

      Michael Godsey – менеджер.

      Daniela Osorio – менеджер по связям с глобальными партнерами.

      Maurycy Pietrzak — соучредитель, разработчик.

      Ryan Schneider – старший системный инженер.

      Eric Tu – разработчик.

      Michael Wuehler – соучредитель, развитие бизнеса.

      Paul Christophe – разработчик.

      Основные сведения и цифры

      Некоторые цифры о росте Infura:

      • Более 40000 зарегистрированных разработчиков
      • Обслуживание более 10 миллиардов API запросов в день
      • Передача примерно 1,6 петабайта данных в месяц
      • В 2017 году транслировались транзакции, которые переместили более 7 миллионов эфиров, причем в 2018 году их было почти 9 миллионов

      Infura, по сути, предоставляет необходимые инструменты для любого приложения, чтобы начать разработку чего-либо на Ethereum сразу же, без необходимости запускать сложную инфраструктуру самостоятельно. Infura обеспечивает связь для всех разработчиков, использующих блокчейн Ethereum.

      Самой известной частью инфраструктуры Infura является сеть размещенных клиентов Ethereum, которая охватывает четыре сети Ethereum:

      Это группы узлов с балансировкой нагрузки, которые можно легко масштабировать для удовлетворения спроса, а также поддерживать актуальность и безопасность.

      У проекта есть API с поддержкой TLS, включая конечные точки JSON-RPC, REST и websocket, как способы доступа к их сети узлов, как если бы это был Ваш локальный узел.

      Узлы Эфира являются только одной частью стека Infura. Они также размещают узлы IPFS и публичный шлюз IPFS. Проект находится в процессе создания дополнительных децентрализованных продуктов хранения на основе как IFP, так и Swarm, которые разработчики подробно рассмотрят в ближайшем будущем.

      Одним из центральных элементов архитектуры Infura является промежуточный уровень, называемый Ferryman.

      Ferryman — это внутренний слой промежуточного программного обеспечения Infura, который обеспечивает интеллектуальную маршрутизацию, которая позволяет отправлять запросы на разные концы инфраструктуры Infura на основе метода RPC и других факторов. Это обеспечивает возможность масштабирования и настройки части инфраструктуры в зависимости от потребностей в трафике. Интеллектуальная маршрутизация может сделать так, чтобы входящие запросы не нуждались в удалении по узлу в реальном времени, а время ответа значительно уменьшалось.

      Модульные масштабирующие решения Infura открывают существенную пропускную способность сети для любого проекта, который, как ожидается, будет стимулировать большие объемы трафика через сеть Ethereum.

      Диапазон проектов, использующих сеть Infura, широк. Например, MetaMask использует Infura с нулевым клиентом, подключаясь к удаленной инфраструктуре Infura, чтобы обслуживать более миллиона пользователей.

      Некоторые проекты, такие как Mist и Status, работают над использованием гибридного подхода, который опирается на удаленные узлы Infura в моменты сетевого стресса.

      Почему я должен использовать Infura?

      У разработчиков блокчейнов есть много проблем, которые может решить Infura (Инфура). Вот несколько примеров:

      Приложениям блокчейна необходимы соединения с одноранговыми сетями, для которых может потребоваться длительное время инициализации.

      Синхронизация узла с блокчейном Ethereum может занять часы или дни, а также может потребоваться больше пропускной способности и мест для хранения, чем вы планировали.

      Хранение полного блокчейна Ethereum может стать дорогостоящим делом, и эти расходы будут увеличиваться по мере добавления дополнительных узлов для расширения своей инфраструктуры.

      По мере того, как ваша инфраструктура становится более сложной, вам могут потребоваться штатные инженеры по надежности сайта и группы DevOps, которые помогут вам в ее обслуживании.

      Infura решает все эти проблемы, предоставляя инфраструктуру и инструменты, которые позволяют разработчикам быстро, легко и экономично подключаться к Ethereum и IPFS и начинать создавать потрясающие децентрализованные приложения.

      Синхронизация не требуется. Никаких сложных настроек. Чем Infura отличается от других поставщиков услуг?

      Пакет API Ethereum и IPFS ежедневно обслуживает и поддерживает тысячи децентрализованных приложений и предлагает время отклика на запросы до 20 раз быстрее, чем другие сервисы или решения для самостоятельного размещения.

      Разработчики обеспечивают круглосуточный доступ к экспертным группам поддержки.

      Как начать использовать?

      Основная услуга бесплатна и предоставляет все необходимое, чтобы начать создавать отличные блокчейн-приложения. Ознакомьтесь с этим пошаговым руководством, которое поможет вам настроить Infura и начать использовать Infura Ethereum API.

      Сколько проектов у меня может быть на одну учетную запись?

      Если вы новичок в блокчейне, вы можете выбрать подписку Core, которая предлагает бесплатный доступ к API-интерфейсам Ethereum и позволяет создавать до 3 проектов.

      Если вы хотите создать более 3 проектов, вы можете перейти на уровень разработчика, который позволит вам создать 10 проектов.

      Какие сети поддерживает Infura?

      Infura поддерживает основную сеть и тестовые сети Ethereum (Rinkeby, Ropsten, Kovan, Görli), IPFS, Filecoin (бета), Eth2 Beacon Chain (бета), Polygon PoS (бета), Optimism Ethereum и Arbitrum Rollup.

      Какие инструменты разработчика могут помочь в разработке децентрализованных приложений?

      Разработчик портала ConsenSys это место, чтобы начать работу и найти инструменты, необходимые для разработки и построения приложений на соответствующие блокчейны Ethereum.

      Там вы найдете самые популярные базы знаний, инструменты инфраструктуры, библиотеки программирования и многое другое, которые научат вас создавать программное обеспечение на Ethereum.

      Как Infura интегрируется с Microsoft Azure VS Code?

      Благодаря сотрудничеству с командой Azure Blockchain в Microsoft, Infura изначально поддерживается в расширении Azure Blockchain Development Kit для VS Code.

      Эта интеграция позволяет разработчикам легко получать доступ и отправлять запросы к своим проектам Infura в любой из поддерживаемых сетей Ethereum — без необходимости покидать интерфейс VS Code. Узнайте, как подключиться к Infura в VS Code здесь.

      Вывод

      Заглядывая вперед, растущая платформа infura будет включать в себя портал для разработчиков, чтобы дать представление и мониторинг разработчикам, использующих сеть Infura, а также более продвинутые решения для масштабирования.

      Чтобы лучше обслуживать разработчиков, использующих Infura, проект представляет новую версию API-ключа, который даст приложениям лучшую видимость того, как они используют сеть.

      Разработчики также представляют продукт «Infura для бизнеса”, который поможет подготовить разработчиков к производственному трафику и предоставить им необходимую поддержку для бесперебойной работы их приложений.

      «Мы активно участвуем в расширении Эфириума и планируем включить многие из новых разработок непосредственно в наши инфраструктурные услуги»

      Источник https://medium.com/hackergirl/how-to-create-a-rpc-enabled-private-network-in-ethereum-52a469660d7c

      Источник https://habr.com/ru/company/raiffeisenbank/blog/338172/

      Источник https://bytwork.com/articles/chto-takoe-infura