Вот и до меня добралось. :)
В общем, пишу ноду на go.
Цели:
- никаких внешних зависимостей;
- экстремальная простота настройки и переноса базы;
- поддержка умного (адаптивного) fetch
На данный момент черновик ноды готов:
https://github.com/gl00my/ii-go Пока нет никакой морды, нет документации. Но решил показать что есть, вдруг кто-то pr накидает. ;)
Как посмотреть:
git clone
https://github.com/gl00my/ii-go.git cd ii-go/ii-tool
go build
./ii-tool fetch
http://idec.spline-online.tk (полный фетч в 6 потоков всех эх (нужна поддержка list.txt), запускается только если видит, что база ноды изменилась, по наличию последнего сообщения)
./ii-tool -lim=-32 fetch
http://idec.spline-online.tk (адаптивный фетч, спускается вглубь истории постепенно, по мере необходимости)
./ii-tool -lim=32 fetch
https://club.syscall.ru (неадаптивный фетч, просто последние 32)
В конце можно указать файл с эхами или - для stdin
cat std.club | ./ii-tool -lim=32 fetch
https://club.syscall.ru -
В итоге сольётся db и создастся db.idx - индекс. db - это просто бандл, и только этого файла достаточно, чтоб переносить базу.
можно теперь положить его к ноде:
mv db ../ii-node/
cd ../ii-node
go build
./ii-node - и запустить ноду на 8080
Теперь можно пофетчить с 127.0.0.1:8080 и позамерять скорость.
Ну и посылка сообщений тоже есть, см. -h
Увлекательное занятие, должен я сказать. :)