Ошибка графического интерфейса контроля четности (ошибка gettransactions typeerror: не удалось получить)

Я использую одноранговый узел с контролем четности, подключенный к настраиваемой цепочке блоков (PoA), но Я не могу отправить транзакцию и не вижу список транзакций своего аккаунта. Я получаю следующие ошибки (см. снимок экрана с ошибкой):

  • Заголовок Access-Control-Allow-Origin отсутствует в запрошенном ресурс.
  • 406
  • getTransactions TypeError: не удалось получить

Ошибки указывают на проблему CORS, но все конфигурации, которые я пробовал для cors ("all", "null", "*", "none", "http://example.com:8540"), привели к тому же результату. Я получаю один и тот же результат как при локальном запуске однорангового узла, так и при его удаленном доступе к графическому интерфейсу с моего компьютера. Все перечисленные порты открыты в брандмауэре. Расширения Chrome отключены; пробовал также в режиме инкогнито. Я также попытался добавить опцию командной строки --unsafe-expose, но безрезультатно.

Вот мой toml на удаленной машине (под управлением Ubuntu):

[parity]
chain = "pcplExternal.json"
base_path = "/home/mike/parity"
[network]
port = 30303
[rpc]
hosts = ["all"]
port = 8545
interface = "0.0.0.0"
cors =["all"]
apis = ["web3", "eth", "net", "personal", "parity", "parity_set", "traces","rpc", "parity_accounts"]
[ui]
force = true
port = 8540
interface = "0.0.0.0"
path = "/home/mike/parity/signer"
[websockets]
origins = ["all"]
apis = ["web3", "eth", "pubsub", "net", "parity", "parity_pubsub", "traces", "rpc", "shh", "shh_pubsub", "personal", "signer"]
hosts = ["all"]
port = 8450
interface = "0.0.0.0"

Есть идеи, что идет не так?

Скорее всего, у вас нет проблем с CORS. Похоже, вам нужно исправить то, что вызывает ошибку 406. Если вы исправите это, вы, вероятно, обнаружите, что ваша конфигурация CORS на самом деле уже работает должным образом, потому что, если сервер похож на большинство других веб-серверов, ожидается, что он не будет добавлять заголовки ответов CORS в ответы об ошибках 4xx или 5xx. Большинство веб-серверов по умолчанию добавляют только настроенные пользователем заголовки к 2хх успешным ответам. Поэтому, если что-то происходит на стороне сервера, из-за чего ваш сервер отвечает 406, можно ожидать, что вы увидите сообщение об ошибке CORS в браузере.

sideshowbarker 12.04.2018 00:52

Я не знаю, при каких условиях задействованный здесь веб-сервер отправит ответный HTTP-код статуса 406 в ответ, но серверы обычно делают это, потому что они не могут отправить обратно тот тип ответа, который запрашивал клиент. Например, если ваш клиентский код добавляет заголовок Accept, скажем, со значением application / json, но сервер не может отправить ответ application / json, то отправка 406 будет одним из способов указать на это. Вам нужно будет проверить журналы сервера, чтобы увидеть, регистрирует ли сервер какое-либо внутреннее сообщение о том, что привело к ошибке 406.

sideshowbarker 12.04.2018 01:02

Чтобы быть ясным, кажется очень маловероятным, что ваша конфигурация CORS заставляет сервер отвечать 406. На сервере, который должным образом обрабатывает протокол CORS в соответствии с соответствующими требованиями спецификации, единственный эффект, который должно иметь включение поддержки CORS, - это заставить сервер для отправки дополнительных заголовков ответа. Это оно. В противном случае включение поддержки CORS никогда не должно приводить к тому, что сервер отклоняет определенные запросы или отвечает на них другим кодом состояния или выполняет дополнительную проверку заголовка запроса Accept или действительно любого заголовка запроса, кроме, возможно, заголовка Origin.

sideshowbarker 12.04.2018 01:09

Все вышесказанное, одно ключевое требование, которое необходимо понять, - это то, что сервер должен правильно отвечать на запросы OPTIONS (а не только GET & POST или что-то еще, что отправляет ваш клиентский код) - он должен отвечать на запрос OPTIONS с помощью 2xx. Это связано с тем, что в рамках протокола CORS браузеры иногда (часто) автоматически самостоятельно отправляют предварительный запрос OPTIONS. Подробнее см. developer.mozilla.org/en-US/docs/Web/HTTP/CORS. Итак, я предполагаю, что возможно одно: 406 с вашего сервера может быть ответом на запрос OPTIONS. Но это так, сервер неправильно спроектирован.

sideshowbarker 12.04.2018 01:14
6
4
200
1

Ответы 1

Это ошибка пользовательского интерфейса Parity и / или Etherscan API.

Если вы внимательно посмотрите на свой снимок экрана, там написано «Список транзакций на базе Etherscan», это, в первую очередь, не связано с конфигурацией вашего узла. Предыстория заключается в том, что полный узел не может легко предоставить вам список транзакций для вашей учетной записи.

Кроме того, не связанные, но все же важные; поскольку вы используете частную сеть, Etherscan просто не хранит ваши данные.

Обратите внимание, я работаю на Parity.

Другие вопросы по теме

Как избавиться от всплывающего окна имени окна панели задач для windows 10
Как изменить масштаб приложения pyqt5 на другом экране с другим разрешением?
Как протестировать реакцию собственного пользовательского интерфейса экрана на другом экране с одного мобильного устройства
Зависит от платформы arm qmake.bin
Как мне преобразовать этот код в солидность? или как работает этот контракт?
С какими возможными ошибками (или предупреждениями) может столкнуться разработчик при развертывании смарт-контракта в сети ethereum?
Допускает ли flutter расширенный дизайн окон?
Я использовал реакцию на распаковку трюфеля, и я не могу вернуть или добавить значения в массив в твердом состоянии
Unity: создание пользовательского интерфейса для oculus, как сделать так, чтобы лазерная указка и нажатие на триггер активировали кнопку?
Как открыть окно графического интерфейса tkinter во время работы веб-камеры opencv?