syusui-s / rabbit

🐰 A nostr client like TweetDeck
https://rabbit.syusui.net
GNU Affero General Public License v3.0
66 stars 13 forks source link

Notification欄に空のイベント(おそらく、Zapを受けたkind:9735)が表示される #77

Open ROBO358 opened 6 months ago

ROBO358 commented 6 months ago

バグの説明 (おそらく、Zapを受けたkindが9735のイベントが)Notification欄に空で表示される 別のクライアントで確認したZap通知の数と空になっている通知欄の数が一致しています。 note14vy2rjtqhna7vwuak9uzz2t6nhgv8mhk6kt5e9hgq0nja3jekggsm9uzld

再現手順 発生させる手順を説明してください:

  1. Zapされる
  2. RabbitのNotification欄を開く

期待される挙動 Zapの通知を表示するか、空になってしまう罫線の表示を削除してほしい

kind:9735のイベント自体は表示を想定しているようなので、イベント内容を適切に表示できていないのかもしれません。

スクリーンショット image

デスクトップ (該当する場合は以下の情報を埋めてください):

追加の情報 特になし

syusui-s commented 6 months ago

Zapの検証処理に失敗していたことが原因でした。

Zapの検証処理にはプロフィールに含まれているlud06もしくはlud16が必要になります。 つるるんさんのkind:0にはlud06lud16の両方が含まれているのですが、つるるんさんのlud06には無効なlnurlが含まれてしまっており、これによりZapの検証処理に失敗してしまっていました(恐らくWallet of Satoshiでユーザ名を変更したため)。lud16は正しいLNURLを含んでいるようです。

lud06lud16の両方にアクセスを試みて、成功した場合にはそちらをZapレシートの検証処理に使うように修正しました。

c11c74d

問題が改善されていればクローズしていただけると嬉しいです。

(空の場合に罫線を消すのは別のチケットを作ったのでそちらで対応します: https://github.com/syusui-s/rabbit/issues/78

ROBO358 commented 6 months ago

自身のlud06が誤ったlnurlになっていたことに気づいていませんでした。ご指摘の通りWallet of Satoshiでユーザ名を変更した際ですかね。

lud06を更新し、改めてZapを受けましたが、問題は改善されていません。

image

c11c74d では、lud06,lud16のいずれかが正常であれば検証に成功し、Zapの通知を表示できるように改修されたという認識で、正常なlud06への更新がZapする側に伝わっていなかったとしても正常に表示されるという認識です。 そのため、本Issueの問題は改善されていないのかなと思います。いかがでしょうか。

ちなみに、 Chromeのキャッシュクリア・スーパーリロード(Ctrl+Shift+R)は実行済みです。 また、Rabbit v0.0.0 (85e0c29)と最新版が表示されていることを確認しています。

お手数ですがご確認よろしくお願いします🙇

syusui-s commented 6 months ago

確認ありがとうございます🙇🙇🙇

https://github.com/syusui-s/rabbit/commit/c11c74d1521cb49c839f3a26af6a1d24cec3052c では、lud06,lud16のいずれかが正常であれば検証に成功し、Zapの通知を表示できるように改修されたという認識で、正常なlud06への更新がZapする側に伝わっていなかったとしても正常に表示されるという認識です。

その認識で間違いありません。

lud06を更新し、改めてZapを受けましたが、問題は改善されていません。

私の方でも、つるるんさんの通知カラムを表示して動作を確認してみたのですが、私のほうでは上手く表示できています……。 同じ https://github.com/syusui-s/rabbit/commit/c11c74d1521cb49c839f3a26af6a1d24cec3052c で確認しています。

image

念の為、以下を確認いただいけると嬉しいです。

お手数をおかけしますが、よろしくお願いいたしますm( )m

ROBO358 commented 6 months ago

最後、問題の原因が判明しています

ご提示頂いた点+α確認しました。

また、以下の通りコンソール画面ではzap.ts内でERR_NAME_NOT_RESOLVEDが発生しています。

image

上記内容から、一点気になるところがございます。 通常WoSのlud16は、robo358@walletofsatoshi.comといった形式で提供され、このときのアクセス先はhttps://walletofsatoshi.com/.well-known/lnurlp/robo358となりますが、 Chromeでは、https://walletofsatoshi.com/.well-known/lnurlp/robo358のDNS名前解決に失敗し、https://www.walletofsatoshi.com/.well-known/lnurlp/robo358wwwのサブドメインが付与されていなければアクセスできません。

以下、どちらもwwwなしのhttps://walletofsatoshi.com/.well-known/lnurlp/robo358へアクセス

image

これがlud06,lud16のいずれかでも検証できればZap通知を表示できるという処理の前にエラー落ちしてしまっているという可能性があるなと考えました。

その前に、Chromeだけでwwwのサブドメインなしへアクセスできない理由を探るため、DNSの設定を確認しました。 その際に、Use secure DNSというオプションをオフにしたところwwwサブドメインなしのhttps://walletofsatoshi.com/.well-known/lnurlp/robo358へアクセスができるようになりました。 (以下では、CloudflareのDNSを設定していますがGoogle等の他の選択肢でも同様にだめでした)

image

このオプションをオフにした状態で再度Rabbitを開いたところ正常にZap通知が表示されるようになりました。

image

DNSの設定によるものでしたが、Use secure DNSオプションを有効にしたままでの回避方法や原因、軽減方法などありますでしょうか。

長文になってしまい申し訳ありません。ご確認よろしくお願いします🙇🙇🙇

追記:

wwwなしのAAAAレコードが取得できていなさそう

❯ curl -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=walletofsatoshi.com&type=AAAA'
{"Status":2,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{"name":"walletofsatoshi.com","type":28}],"Comment":["EDE(6): DNSSEC Bogus (proof of non-existence of walletofsatoshi.com. AAAA)"]}%
❯ curl -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=www.walletofsatoshi.com&type=A'
{"Status":0,"TC":false,"RD":true,"RA":true,"AD":true,"CD":false,"Question":[{"name":"www.walletofsatoshi.com","type":1}],"Answer":[{"name":"www.walletofsatoshi.com","type":5,"TTL":3600,"data":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com."},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":7,"data":"34.201.80.84"},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":7,"data":"54.91.6.89"},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":7,"data":"54.157.4.65"},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":7,"data":"54.196.16.164"}]}%
❯ curl -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=walletofsatoshi.com&type=A'
{"Status":0,"TC":false,"RD":true,"RA":true,"AD":true,"CD":false,"Question":[{"name":"walletofsatoshi.com","type":1}],"Answer":[{"name":"walletofsatoshi.com","type":1,"TTL":3600,"data":"34.201.80.84"},{"name":"walletofsatoshi.com","type":1,"TTL":3600,"data":"54.91.6.89"},{"name":"walletofsatoshi.com","type":1,"TTL":3600,"data":"54.157.4.65"},{"name":"walletofsatoshi.com","type":1,"TTL":3600,"data":"54.196.16.164"}]}%
❯ curl -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=www.walletofsatoshi.com&type=A'
{"Status":0,"TC":false,"RD":true,"RA":true,"AD":true,"CD":false,"Question":[{"name":"www.walletofsatoshi.com","type":1}],"Answer":[{"name":"www.walletofsatoshi.com","type":5,"TTL":3600,"data":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com."},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":5,"data":"34.201.80.84"},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":5,"data":"54.91.6.89"},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":5,"data":"54.157.4.65"},{"name":"serene-sprout-qk5v2xbe6y4zgzs3uhyeldw3.herokudns.com","type":1,"TTL":5,"data":"54.196.16.164"}]}
ROBO358 commented 6 months ago

(問い合わせが長引いているため現状報告) 現状、DNSSECのエラーについてWoSに対して問い合わせ中です。(WoSはこのことを把握していないようでした)

以下、CloudflareとGoogleのDNSどちらからもDNSSECのerrorが返されている。

❯ curl -H 'accept: application/dns-json' 'https://1.1.1.1/dns-query?name=walletofsatoshi.com&type=AAAA'

{"Status":2,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{"name":"[walletofsatoshi.com](http://walletofsatoshi.com/)","type":28}],"Comment":["EDE(6): DNSSEC Bogus (proof of non-existence of [walletofsatoshi.com](http://walletofsatoshi.com/). AAAA)"]}
curl -H 'accept: application/dns-json' 'https://dns.google.com/resolve?name=walletofsatoshi.com&type=AAAA'

{"Status":2,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{"name":"walletofsatoshi.com.","type":28}],"Comment":"DNSSEC validation failure. Check http://dnsviz.net/d/walletofsatoshi.com/dnssec/ and http://dnssec-debugger.verisignlabs.com/walletofsatoshi.com for errors","extended_dns_errors":[{"info_code":12,"extra_text":"Invalid denial of existence of walletofsatoshi.com/aaaa"}]}