Я установил контроль четности на экземпляре AWS EC2, следуя этим инструкциям, и запустил контроль четности с --jsonrpc-apis 'web3,eth,net,parity'
флагом. Я также пробовал много других флагов, таких как--rpccorsdomain '*'
Однако я изо всех сил пытаюсь подключиться к нему с помощью web3.js.
Также я временно открыл весь входящий трафик с моего IP
Взгляните на документы JSONRPC:
--jsonrpc-port PORT Specify the port portion of the JSONRPC API server
(default: 8545).
--jsonrpc-interface IP Specify the hostname portion of the JSONRPC API
server, IP should be an interface's IP address, or
all (all interfaces) or local (default: local).
--jsonrpc-cors URL Specify CORS header for JSON-RPC API responses.
(default: None)
--jsonrpc-apis APIS Specify the APIs available through the JSONRPC
interface. APIS is a comma-delimited list of API
name. Possible name are web3, eth, net, personal,
parity, parity_set, traces, rpc, parity_accounts.
(default: web3,eth,net,parity,traces,rpc).
--jsonrpc-hosts HOSTS List of allowed Host header values. This option will
validate the Host header sent by the browser, it
is additional security against some attack
vectors. Special options: "all", "none",
(default: none).
Таким образом, включение необходимых API, как вы это сделали, — это только одна часть головоломки, которую вы пытаетесь решить :)
Предполагая, что у вас все в порядке с портом по умолчанию и API по умолчанию, давайте посмотрим на следующие функции, которые вам, вероятно, понадобятся:
--jsonrpc-interface all
включает HTTP JSON-RPC API на всех сетевых интерфейсах, а не только на локальном замыкании на себя. Вы также можете указать --jsonrpc-interface 133.33.33.37
, какой ваш общедоступный IP-адрес будет обслуживать RPC только для общедоступного сетевого интерфейса.Попробуйте, это уже должно работать, если вы открыли порт RPC для брандмауэра AWS. Дополнительная тонкая настройка может быть достигнута с помощью
--jsonrpc-hosts all
чтобы разрешить все значения заголовка хоста, отправленные браузером.--jsonrpc-cors '*'
чтобы разрешить все запросы CORS из любого домена.Обратите внимание, что вы, вероятно, захотите отключить разумные API, такие как, personal,parity_accounts,parity_set
а также отключить другие функции, такие как --no-ui
, --no-dapps
, --no-secretstore
, --no-code
, или --no-storage
повысить безопасность своего клиента.
+1 @Влал. Наряду с этим --jsonrpc-hosts all --jsonrpc-interface all
мне пришлось добавить --jsonrpc-cors null
вместо--rpccorsdomain "*"
короткая версия (если вы находитесь в доверенной сети и предполагаете, что у вас не работают локальные брандмауэры):
--jsonrpc-hosts all --jsonrpc-interface all
затем вы подключаетесь через (и, очевидно, меняете IP):web3 = new Web3(new Web3.providers.HttpProvider("http://xxx.xxx.xxx.xxx:8545"));
Вы должны использовать
jsonrpc-cors all
И
jsonrpc-hosts all
либо непосредственно в команде ( --jsonrpc-cors all --jsonrpc-hosts all
), либо в .toml
конфигурационном файле.