Как общаться с общедоступным Ethereum Blockchain на веб-сервере? - PullRequest
2 голосов
/ 13 мая 2019

В бэкэнде веб-приложения мне нужно общаться с общедоступной цепочкой блоков Ethereum.

На локальной машине для разработки я запускаю ganache как testrpc и подключаюсь с такой строкой кода:

web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));

Я также узнал, что могу развиваться с использованием тестовой сети RinkeBy с

web3 = new Web3(new Web3.providers.HttpProvider("https://rinkeby.infura.io/$thisistheapikey"));

Но как я могу общаться с РЕАЛЬНОЙ общедоступной цепочкой блоков?Нужно ли запускать geth на веб-сервере и подключаться к его экземпляру?Или есть какая-либо общедоступная сеть, которую можно использовать?(если мы можем доверять этому)

1 Ответ

2 голосов
/ 17 мая 2019

Но как мне связаться с РЕАЛЬНОЙ общедоступной цепочкой блоков?

Для подключения к общедоступной цепочке цепей Ethereum (узел Ethereum) с удаленным вызовом процедуры (RPC) в основной сети, вам нужен узел Ethereum.Есть несколько способов сделать это.Вы можете запустить свой собственный узел Ethereum с Geth или Parity .Но это требует загрузки большого количества данных из общедоступной цепочки блоков и их синхронизации.Это огромная задача.

В качестве альтернативы вы можете использовать Infura (https://infura.io/) для доступа к узлу Ethereum (Public Blockchain Ethereum) без необходимости запуска какого-либо узла самостоятельно. Infura предоставляет удаленный Ethereumбесплатный узел. Все, что вам нужно сделать, это зарегистрироваться и получить ключ API и URL-адрес RPC для подключения.

URL-адрес Infura RPC должен выглядеть следующим образом:

https://mainnet.infura.io/YOUR_INFURA_API_KEY  

Теперь выможно использовать этот RPC-URL для связи, например

const Web3 = require('web3')
const rpcURL = '' // Your RPC URL with infura key goes here,i.e. https://mainnet.infura.io/YOUR_INFURA_API_KEY 
const web3 = new Web3(rpcURL)
const address = '' // Your ethereum account address goes here
web3.eth.getBalance(address, (err, wei) => {
  balance = web3.utils.fromWei(wei, 'ether')
})

Нужно ли запускать geth на веб-сервере и подключаться к его экземпляру?

Уже описанный в первом ответе, это может быть другой подход к общению.

Или есть какая-либо общедоступная сеть, которая может быть использована? (Если мы можем доверять ей)

Существуют эфириум Основная сеть , где происходит настоящая транзакция с токеном, и Тестовая сеть , которые не имеют реальной ценности. До запуска проекта наЭфириум блокчейн все возможное, чтобы запустить всю сценуario в среде Test Net для поиска и устранения проблем безопасности.Доступно множество тестовых сетевых сервисов.Например, Ropsten, Kovan, Rinkeby. Просто поищите в интернете «ethereum mainnet testnet», чтобы узнать больше.Надежда помогает.

...