Как улучшить доступность частной сети Ethereum

#ethereum #go-ethereum

#ethereum #перейти на ethereum

Вопрос:

Я хочу иметь возможность подключаться к любому доступному узлу в моей частной сети Ethereum.

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

В настоящее время я использую следующий код для подключения к узлу в моей сети Ethereum:

 client, err := ethclient.Dial("http://localhost:8545")
// do stuff
  

Ожидаемый конечный результат — в основном улучшить доступность сети. Итак, ради аргументов, если узел at 8545 недоступен, он будет использовать узел at 8546 и так далее…

Я надеюсь, что вопрос достаточно ясен. Спасибо!

Комментарии:

1. С помощью какого-то списка конечных точек для попытки и какого-то механизма повторных попыток. Что вы пробовали? В чем конкретно заключается ваш вопрос?

2. @Adrian пока ничего. Я пытался выяснить, как работает Infura, и воспроизвести это поведение, но пока безуспешно. Под списком конечных точек вы подразумеваете наличие всех доступных узлов и опробование каждого по очереди?

3. Простое решение — иметь список ваших узлов и пробовать их один за другим, пока вызов Dial () не завершится успешно. Более масштабируемое решение — реализовать какой-либо способ извлечения списка узлов и использовать его. Возможно, внедрите периодическое сердцебиение для поиска недоступных узлов, прежде чем вам понадобится подключиться.

4. @MadWombat Я понял ваше первое предложение. Если бы я должен был реализовать последнее, разве вам не понадобилось бы периодическое сердцебиение, чтобы найти доступные узлы? Спасибо за ваш ответ

5. Нет. Вам не требуется строго heartbeat для поддержания динамического списка узлов. В зависимости от вашей конкретной архитектуры, вы могли бы просто зарегистрировать узел в службе обнаружения, такой как consul, или добавить себя в список каким-либо другим способом, и тогда у вас был бы список узлов. Вы могли бы исключить узлы из списка, если они не отвечают, или вы всегда могли бы сохранить все или выполнить любую другую логику. Heartbeat поможет вам быстрее подключаться, обнаруживая недоступные узлы до того, как будет предпринята попытка подключения.