Closed Senna46 closed 3 years ago
26657のportはあいてるか、とか
ポートは空いているようなので設定の方だと思います。
LISTEN 0 4096 127.0.0.1:26657 0.0.0.0:*
あ、わかったかもcors_allowed_originsのちかくに、GETやPOSTは許可する、みたいなcors allow methodみたいなフィールドないすか? それにいろいろ足さないといけないかも
ちなみにこっちで詰まるようであれば引き続きtestchain でtxのwebsocketテストいただき、bank.spec.ts使ってトランザクションをtestchainに送ればこの問題スキップはできると思います
先送りにしとけば無意識に解決法発見してるときはたまにあるので
methodとheaderのリストがあります。 何を足すか,まだわかっていないので先にその方法でLatestTxsの表示を実装してみます。
# A list of methods the client is allowed to use with cross-domain requests
cors_allowed_methods = ["HEAD", "GET", "POST", ]
# A list of non simple headers the client is allowed to use with cross-domain requests
cors_allowed_headers = ["Origin", "Accept", "Content-Type", "X-Requested-With", "X-Server-Time", ]
cors_allowed_methods = ["HEAD", "GET", "POST", ]のほうに、"OPTIONS"
足すと、いわゆる「preflight request」の遮断を防げるので( https://developer.mozilla.org/ja/docs/Glossary/Preflight_request )たまーにこれは解決法の一つになったりします
関係なければ、言った方法でスキップお願いします。
cors_allowed_methodsに"OPTIONS", "DELETE",
足してみましたが解決できないのでスキップしようと思うのですが,
bank.spec.tsは
// get account info
const account = await rest.cosmos.auth
.account(sdk, fromAddress)
.then((res) => res.data.account && cosmosclient.codec.unpackCosmosAny(res.data.account))
.catch((_) => undefined);
if (!(account instanceof proto.cosmos.auth.v1beta1.BaseAccount)) {
console.log(account);
return;
}
ここでundefined
が返ってきており,Txが作成できていないようです。とりあえずこちらの解決を図ります。
bank.spec.tsはニーモニック部分をちゃんとかえないと動かないです ニーモニックはstarport serveしたらでてくるやつです でなければ~/.testchainを全消ししたあともっかいserveしたら出ます
constructor(http: HttpClient) {
http.get('http://198.13.55.54:26657/status').subscribe(res => console.log(res));
}
user@Blade15 ~ % curl http://a.test.jpyx.lcnem.net:26657/status
curl: (7) Failed to connect to a.test.jpyx.lcnem.net port 26657: Connection refused
ローカルでも同じくrefused
root@jpyx-test-a:~# curl http://localhost:26657/status
{
"jsonrpc": "2.0",
"id": -1,
"result": {
"node_info": {
"protocol_version": {
"p2p": "8",
"block": "11",
"app": "0"
},
"id": "6fc4109698025d8ee20c09a78fd6b7fb858c26e2",
"listen_addr": "tcp://0.0.0.0:26656",
"network": "jpyx-1-test",
"version": "v0.34.8",
"channels": "40202122233038606100",
"moniker": "lcnem-test-a",
"other": {
"tx_index": "on",
"rpc_address": "tcp://127.0.0.1:26657"
}
},
"sync_info": {
"latest_block_hash": "2288CE23E174B91341ED31BDF8116CFABAB19EF0C3147E45F73554DB12E54ABE",
"latest_app_hash": "9C07520C3F7BE52B5D3111428D9036E8124E54480396FA4F1A67822F73339EB2",
"latest_block_height": "1817809",
"latest_block_time": "2021-08-02T09:48:42.89347318Z",
"earliest_block_hash": "343FA16E40E7C7281C1BF6C80732DF4EE2970CCD8CFD70338759CA0EC43ACD6D",
"earliest_app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"earliest_block_height": "1",
"earliest_block_time": "2021-04-12T05:11:20.803293303Z",
"catching_up": false
},
"validator_info": {
"address": "FD428E2076E500C650FF8304AE14268893000FCA",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "oYCrJpP1vlhMCh3K24FfWA5KE+KXrjkEfZENJOfVi64="
},
"voting_power": "0"
}
}
}
root@jpyx-test-a:~# sudo ufw status
Status: inactive
pingは通ってるがtelnetは開けない
user@Blade15 ~ % telnet 198.13.55.54:26657
telnet: could not resolve 198.13.55.54:26657/telnet: Name or service not known
user@Blade15 ~ % ping 198.13.55.54
PING 198.13.55.54 (198.13.55.54) 56(84) bytes of data.
64 bytes from 198.13.55.54: icmp_seq=1 ttl=47 time=16.2 ms
root@jpyx-test-a:~/jpyx# lsof -i:26657
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
jpyxd 749473 root 73u IPv4 13654591 0t0 TCP localhost:26657 (LISTEN)
root@jpyx-test-a:~/jpyx# ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 127.0.0.1:46814 127.0.0.1:33673
ESTAB 0 1056 198.13.55.54:ssh 222.187.232.205:59744
ESTAB 0 0 127.0.0.1:33673 127.0.0.1:46812
ESTAB 0 0 127.0.0.1:33673 127.0.0.1:46814
ESTAB 0 0 127.0.0.1:46812 127.0.0.1:33673
ESTAB 0 60 198.13.55.54:ssh 180.145.237.243:49174
ESTAB 0 0 [2001:19f0:7001:5dc6:5400:3ff:fe40:c5e3]:58254 [2001:19f0:7002:235:5400:3ff:fe40:c5eb]:26656
FIN-WAIT-2 0 0 [::ffff:198.13.55.54]:1317 [::ffff:180.145.237.243]:50281
FIN-WAIT-2 0 0 [::ffff:198.13.55.54]:1317 [::ffff:180.145.237.243]:63400
ESTAB 0 0 [2001:19f0:7001:5dc6:5400:3ff:fe40:c5e3]:26656 [2001:19f0:7001:2c46:5400:3ff:fe4c:64eb]:44620
ESTAB 0 0 [2001:19f0:7001:5dc6:5400:3ff:fe40:c5e3]:59970 [2001:19f0:7001:32e0:5400:3ff:fe4c:64f4]:26656
FIN-WAIT-2 0 0 [::ffff:198.13.55.54]:1317 [::ffff:180.145.237.243]:63765
FIN-WAIT-2 0 0 [::ffff:198.13.55.54]:1317
ローカルで空いているが、外部との通信が確立されておらず、仕様である可能性が高いため、 https://github.com/lcnem/jpyx/issues/9 リバースプロキシでの解決を試みる。
ws使わない方向で解消
WebSocket connection to 'ws://a.test.jpyx.lcnem.net:26657/websocket' failed:
エラーでcosmoscanから接続できない ローカルのtestchainには接続できるため,VPS側の問題の可能性が高い。config.toml
cors_allowed_origins = []
→`cors_allowed_origins = ["*"]‘に変更も状況変わらず。引き続き設定を確認します。