-
Notifications
You must be signed in to change notification settings - Fork 2
/
todo.txt
142 lines (95 loc) · 6.05 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
- update docs
- fix year of changes
сборка:
- linux/ubuntu https://www.simplified.guide/ubuntu/build-chroot-environment
- windows
- conflict handling is not available
===========
5. разобраться с лог-левелами?
1. ^ если в block iterator'е были проскипанные блоки (из-за того, что были залочены), то файл(!) надо добавить на рескан через некоторое время
3. скан-актор не детектит скаченные файлы
4. надо как-то понимать, что folder is up-to-date?
- syncspirit-daemon: /home/b/development/cpp/syncspirit/src/net/dialer_actor.cpp:88: void syncspirit::net::dialer_actor_t::on_timer(rotor::request_id_t, bool): Assertion `it != redial_map.end()' failed.
- [2023-10-31 13:56:49.488] [D/23191] init/active:KUEQE66, resolving tcp://93.31.21.95:443 (transport = 0x5585be9747e0)
- 2022-03-28 20:47:54.664] [E/25546] fs::scan_actor, on_hash, file: my_label/Camera/VID_20210122_121411.mp4, error: fs::scan_actor request timeout
=====================
- идёт много file_clone, но нету скачки файла
- check 4 symlinks test (scaner) ?
- simulate file failure on win32 (open file before it will be opened in fs_actor)
- app-image : ./linuxdeploy-x86_64.AppImage --appdir AppDir -e bin/eratosthenes -d my.desktop -i /usr/share/icons/hicolor/48x48/apps/claws-mail.png --output appimage
- image icon:
https://www.stockio.com/free-icons/?q=sync,
https://www.freepik.com/free-vector/settings-icons-flat_1530486.htm#query=sync%20icon&position=1&from_view=search
===================
- восстанавливаться при креше (из-за MDBX_SAFE_NOSYNC) : держать заммапленый файлик
file-uuid | (source) device_id | seq_no
----------+--------------------+-------
...
к-во записей N задаётся в конфиге. Когда файл флушится, пишем запись.
Как только произошло N записей, флушим БД на диск.
- controller: не падать, если пришла ошибка на запрос блока
- https://docs.syncthing.net/users/faq.html#what-things-are-synced
- когда нам прислали update, но нету sequence/устаревшая инфа, нужно апдейтить бд, но не запрашивать файлы
- test: validation happens before opening file?
- send indices deltas (after restart detects changes)
- test: fs_actor, deleted file from index
- test: controller, share folder -> index is sent
- test: file is not available
- test: device file
- start syncing folder when new folder has been added, нужно слать cancel{}
- backpressue on controller by file-actor?
- Canonicalize, TempNameWithPrefix, TempName
- локальные таймстемпы?
- metadata (timestamp, etc.)
- cluster is update by 3rd party: регать итераторы в cluster'е и инвалидировать, если надо.
- https://github.com/syncthing/syncthing/pull/7876
- https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
- https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
- https://github.com/wheybags/glibc_version_header
./src/ui-daemon/syncspirit-daemon --log_level trace --config_dir=../ --command add_peer:zzz:KUEQE66-JJ7P6AD-BEHD4ZW-GPBNW6Q-Y4C3K4Y-X44WJWZ-DVPIDXS-UDRJMA7 --command add_folder:label=my_label:id=nagkw-srrjz:path=/tmp/syncspirit --command share:folder=my_label:device=KUEQE66
- https://docs.0install.net/about/faq/
3. use wxWidgets
- config & tui
- игнорированные девайсы: показать, удалить
- добавить/удалить/изменить директорию
- удалить/добавить/изменить девайс
- config versioning
- next activity
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_sequences
https://stackoverflow.com/questions/64035952/how-to-key-press-detection-on-a-linux-terminal-low-level-style-in-python
- local-discovery
iptables -t nat -A OUTPUT -p udp --dport 21027 -j DNAT --to-destination 127.0.0.1:21026
-relay
syncthing-relay(7)
relay://78.46.89.67:22067/?id=WAVJNLF-AVVZAPT-V6JEQA5-B3EPEW6-6SAR3C4-NFZBOW2-CWR3QM4-QJT2OA6&pingInterval=1m0s&networkTimeout=2m0s&sessionLimitBps=0&globalLimitBps=0&statusAddr=:22070&providedBy=frogeye.fr
- discovery_support, upnp_support-> proto ?
- вообще не отвечает upnp
- restart all on config change
openssl x509 -inform PEM -outform DER -in ~/.config/syncthing/cert.pem -out /tmp/cert.der
- статически собирать бинарь под линь ( https://www.youtube.com/watch?v=Z7WuUhPJ-cU&list=PLZN9ZGiWZoZruMY-MlkAd-nHzdP9TfLRC&index=25 )
- case: когда коннектимся к пиру, но он ранее приконнектился к нам
- dialer-actor
- protobuf light?
- DB
https://github.com/erthink/libmdbx
https://iowow.io/
https://symas.com/lmdb/
https://en.wikipedia.org/wiki/LevelDB
https://wiki.lyrasis.org/display/FEDORA471/How+to+inspect+LevelDB
https://softwarerecs.stackexchange.com/questions/14409/leveldb-database-client
[RF7ZH] 2020/12/10 10:25:13.662765 logfs.go:61: DEBUG: casefs.go:152 basic /home/b/Desktop/finances Lstat invoices/samples/Rechnung_Nr._B2020128.pdf {0xc000a14f70} <nil>
https://forum.syncthing.net/t/a-few-questions-about-quic-hole-punching-and-stun/16490
=========
1. Есть глобальй регистратор
message_type -> ack_count
2. Акторы при старте регаются что они выслают ack. При выключении - дерегаются.
3. Интерфес visitor'а (Effector)
OnBegin(diff&) -> outcome::result;
OnCommit(diff&) -> void;
OnRevert(diff&) -> void;
4. Diff
Apply()
Revert()
Commit() -> true/false. true если к-во ack'ов == то, что в регистраторе
Diff::Ack
5. По-умолчанию 1 подтверждение высылает сам источник, Commit ничего не делает