新月の開発

開発

c0a2c7b1 anonymous [AU] w5Nwr4MiKrs 2024-02-14 15:27
バインドされるアドレスがおかしかったので、以下のパッチをあてました。
動いているような、動いていないような

------

% diff -u httpd.py /usr/local/saku/lib/python3.11/site-packages/shingetsu/httpd.py
--- httpd.py    2024-02-05 13:59:46.998656372 +0900
+++ /usr/local/saku/lib/python3.11/site-packages/shingetsu/httpd.py     2024-02-14 15:13:58.994625522 +0900
@@ -30,6 +30,7 @@

 import os
 import threading
+import socket

 from . import config
 from . import LightCGIHTTPServer
@@ -51,6 +52,9 @@
         server_address = (config.bind_addr, config.port)
         HandlerClass.server_version = config.version
         HandlerClass.root_index = config.root_index
+        print("host# {}".format(server_address))
+        if ':' in config.bind_addr:
+            ServerClass.address_family = socket.AF_INET6
         self.httpserv = ServerClass(server_address, HandlerClass)

     def run(self):
a6b88984 anonymous 2024-02-15 08:41
>>c0a2c7b1
https://github.com/shingetsu/saku/blob/0436419428dfbe2f6dae3ce196cb27681dc625ff/shingetsu/LightCGIHTTPServer.py#L272
で指定してあるから効きそうなものですが、不思議ですね…?
47a32f09 anonymous 2024-02-15 09:12
>>a6b88984
あれれ、ほんとだ。うーん。

saku.ini の bind_addr に IPv6なアドレスを入れて動かしたのですが、最初は以下のようなエラーでした。

2024-02-13 15:12:14<>Traceback (most recent call last):
2024-02-13 15:12:14<>  File "/usr/local/saku/bin/saku", line 66, in <module>
2024-02-13 15:12:14<>    main()
2024-02-13 15:12:14<>  File "/usr/local/saku/bin/saku", line 57, in main
2024-02-13 15:12:14<>    daemon.start_daemon()
2024-02-13 15:12:14<>  File "/usr/local/saku/lib/python3.11/site-packages/shingetsu/daemon.py", line 115, in start_daemon
2024-02-13 15:12:14<>    httpdaemon = httpd.Httpd()
2024-02-13 15:12:14<>                 ^^^^^^^^^^^^^
2024-02-13 15:12:14<>  File "/usr/local/saku/lib/python3.11/site-packages/shingetsu/httpd.py", line 54, in __init__
2024-02-13 15:12:14<>    self.httpserv = ServerClass(server_address, HandlerClass)
2024-02-13 15:12:14<>                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-02-13 15:12:14<>  File "/usr/lib/python3.11/socketserver.py", line 456, in __init__
2024-02-13 15:12:14<>    self.server_bind()
2024-02-13 15:12:14<>  File "/usr/lib/python3.11/http/server.py", line 136, in server_bind
2024-02-13 15:12:14<>    socketserver.TCPServer.server_bind(self)
2024-02-13 15:12:14<>  File "/usr/lib/python3.11/socketserver.py", line 472, in server_bind
2024-02-13 15:12:14<>    self.socket.bind(self.server_address)
2024-02-13 15:12:14<>socket.gaierror: [Errno -2] Name or service not known
23bceb6e anonymous [AU] w5Nwr4MiKrs 2024-02-15 09:16
昨日、動かしたままにしておいたら、node.txtとsearch.txtにIPv6なノードが登録されていました!

[ ] で囲われるのが正しい表記だと思いますが、囲われていなノードもあるのが気になります。

隣接ノード
  
  • july.kot.jp:8000/server.cgi
  • rep4649.ddo.jp:8000/server.cgi
  • 153.161.xxx.xxx:8000/server.cgi
  •116.58.xxx.xxx:8000/server.cgi
  •133.130.xxx.xxx:8001/server.cgi
  •133.203.xxx.xxx:9520/server.cgi
  •116.82.xxx.xxx:8000/server.cgi
  •[2407:30xx:xxx:xxx::xxx]:8000/server.cgi
  • 124.87.xxx.xxx:8000/server.cgi

探索ノード

  • 2401:25xx:xxx:xxx:xxx:xxx:xxx:xxx:8000/server.cgi
(snip)
  • rep4649.ddo.jp:8000/server.cgi
  • [2404:7axx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]:9520/server.cgi
(snip)
  • [2407:30xx:xxx:xxx::xxx]:8000/server.cgi
  • 124.87.xxx.xxx:8000/server.cgi
  • 133.125.xxx.xxx:8000/server.cgi
  • saku.loneb.net:8000/server.cgi
  • july.kot.jp:8000/server.cgi
49d5b5ca anonymous 2024-02-15 23:08
アップグレード。bind_addrを指定していないとipv6でlistenするんですね
https://github.com/shingetsu/saku/commit/43b461107914a93f76f316b9afc8aff376a9e24a#diff-fd7bbd5ec78ac30c1a6b3b312b35b7cbe6dad3a3bb990383f0f13b7afeefe1e9R48
ipv4 onlyな家からサーバの新月へアクセスできなかったのでipv4に変更しました

[Network]
bind_addr: 0.0.0.0
d9e65701 anonymous 2024-02-28 01:54
両方で Listen するべきなのではなかろうか。
f07b0fec anonymous 2024-03-12 18:58
ChatGPTで新月のアップデート
edfbea21 anonymous 2024-04-06 13:06
>>d9e65701
>>49d5b5ca
自己解決しました。FreeBSD環境でsysctlの値が
net.inet6.ip6.v6only: 1
でした。0に設定したらIPv4な家からもアクセスできました。
手元のGNU/Linux機でIPv6でlistenしてもIPv6とIPv4両方アクセスできたのでOSまわりを確認したらビンゴでした。
そもそもIPv4/IPv6のデュアルスタックになっていればIPv6でlistenしたらIPv4からもアクセスできるはずです(IPv4射影アドレス)。
f79e5371 anonymous 2024-04-06 13:11
おま環というやつでした
00905e6a anonymous 2024-05-03 03:03
https://shingetsu.info/docs
『参加する』がほとんど機能していない。
リンクしているのだけが生き残りかな?と思えばそうでもないみたいだけど、ランダムゲートウエイからしか行けないのかな。
843fed9a anonymous 2024-05-05 15:47
>>00905e6a
あー…
繋がらないところを消しました。
c5e5ea6c anonymous 2024-06-05 02:08
どんぐりは実装されますか?
bfd543e8 anonymous 2024-06-10 14:36
初期ノードの定義って、あまり積極的には最新化されていなかったりします?

https://github.com/shingetsu/saku/blob/master/file/initnode.txt

試してみたところ、末尾の「opptape.iobb.net:8000/server.cgi」にpingが通りませんでした。
(新月プロトコルの意味でも、ICMP の意味でも)

気になったひとが、プルリク出す運用ですかね?
367ee0c5 anonymous 2024-06-10 19:33
>>bfd543e8
気付けば直すけどそもそも気づいてないことが多いです。
たまたま繋がらないのかどうかの判断も難しくて。
02651638 anonymous 2024-06-10 20:33
>>367ee0c5
返信ありがとうございます。確かにその判断は難しそうですね。
各ノードの生死をゴリゴリに監視するのもちょっと違う気がしますし、現状が現実解のような気もしてきました。お騒がせいたしました。
f5dd5da2 anonymous 2024-06-11 15:06
>>367ee0c5
そもそも新月もっと流行らせる努力足りてなくない?
GIGAスクール構想で使ってもらうとか色々みんなでアイデア出していきましょう
2cae2214 anonymous 2024-06-12 12:22
別に流行らそうとはしてないでしょ
e05323bb anonymous 2024-06-12 20:43
勉強がてら、ローカルで saku を2つ動かして、2ノードだけのネットワークを作ってみたところ、基本的な動きがよく分かって面白かったです
40a6ce8e anonymous 2024-07-22 17:14
状態を確認したら自分のノードがIPv6だけど
新月はIPv6に対応したの
他の人はIPv4が表示さているけど
90e6a38f anonymous 2024-07-22 17:16
今確認したら自分のIPはv4になってた
何度かリロードしたらv4になったりv6になったりするね

Top of this page. | 0 1 old>>

limit: 1536KB

開発

(新月の開発/30/0.0MB)

Powered by shinGETsu.