V2 Analysis Coverage KO - k-p2p-lab/kpl-v3 GitHub Wiki
v2 ๋ถ์ยท์๊ฐํ ๋์
Wiki home โบ ํ๊ตญ์ด ๋ฌธ์ ยท ์์ด ์๋ฌธ
๋ฌธ์ ์๋ด ยท ์์ค ์ ์ฅ์
์ ๊ณต๋ v2 revision 74b71090410cac1315ae08f479a95c086feeaaf6์ ๋ถ์ ์ถ๋ ฅ 40๊ฐ ํ๋/๊ณ์ด๊ณผ GoยทPythonยท์คํ ์คํฌ๋ฆฝํธ 34๊ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ๋๋ค. ๊ฐ ์์ค์ hash๋ ๋ชฉ๋ก์ ์์ต๋๋ค. python3 scripts/audit-v2-analysis.py --v2 ../v2๋ ๋ชฉ๋ก์ ๋๋ฝยท๋ณ๊ฒฝ์ ํ์ธํ๋ฉฐ ์์น ๋๋ฑ์ฑ์ ์ฆ๋ช
ํ๋ ๊ฒ์ฌ๋ ์๋๋๋ค.
์๋ ์๊ฐํ ๊ณ์ด์ v3์ Saved results โ Images ๋ฐ ๋น๊ต ๋๊ตฌ์์ ์ ๊ณตํฉ๋๋ค. ๋ฉ์ธ Metrics๋ ๊ธฐ์กด ์ธ์
ยท์์ ๊ธฐ๊ฐ ์ ์๋ฅผ ์ ์งํ๊ณ , ์ถ๊ฐ ๋ถ์์ research.definition = v2-corrected-observations-v1๋ก ๊ตฌ๋ถํฉ๋๋ค. ์๋ณธ ์๋ฃ์ ํต๊ณ ์ ์๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ v2์ ๊ฐ์ ์์น๋ฅผ ๋ณด์ฅํ์ง ์์ต๋๋ค. ์ฌ์ฉํ ์ ์๋ ๊ด์ธก๊ฐ์ N/A, ์ถ์ ํ์ง ๋ชปํ ์ ํ ์ถ์ฒ๋ unknown์ผ๋ก ๋จ๊น๋๋ค.
๋ถ์ ์ถ๋ ฅ
| v2 ์ถ๋ ฅ ๊ณ์ด | v3 ํํ๊ณผ ์กฐ๊ฑด |
|---|---|
node_count, average_degree, average_degree_excluding_leaves |
ํ๋กํ ์ฝยท๊ทธ๋ฃน๋ณ ์๊ณ์ด๊ณผ ์์ฝ. ๋น์ ๋ถ๋ชจ ์งํ๋ ์ ์ฒด ์ฐจ์ ํฉ / degree > 1์ธ ๋ ธ๋ ์ |
diameter, shortest_path_length |
์ ์ฅ ๊ฐ์ ์์ ๊ณ์ฐ. ๋๋ฌ ๊ฐ๋ฅํ ์๋ก ๋ค๋ฅธ ๋ ธ๋ ์๋ง ์ฌ์ฉํ๊ณ connected-pair ๋น์จ์ ํจ๊ป ํ์ |
clustering_coefficient, assortativity, modularity |
ํ๊ท ์ง์ญ clustering, ์ฐจ์ ์๊ด, ๊ฒฐ์ ์ seed์ Louvain modularity. ์ ์๋์ง ์๋ ํต๊ณ๋ N/A |
betweenness_centrality, page_rank, degree_centrality, closeness_centrality, eigenvector_centrality |
์ ๊ทํ ์ค์ฌ์ฑ์ ์ ์ฒดยท๊ทธ๋ฃน ํ๊ท . ๊ทธ๋ํ ์์๋ฃ๊ฐ ์๋ ์ ์ฅ ํ๋ณธ์์ ๊ณ์ฐ |
degree_distribution-* |
๊ด์ธก snapshot๋ณ ํ๋ฅ ์ ํ๊ท ํ ์ฐจ์ PDF/CDF์ ๊ฐ์ค Student-t ์ ํฉ |
frt, reachability, drc |
๋ฉ์์ง๋ณ ์ต์ด ์์ ์ง์ฐยท๋๋ฌ๋ฅ ยท์ค๋ณต ์์ ๋ฉ์์ง ํ๊ท ์์ฝ. DRC/graph-node ๋ฐ DRC/target๋ ๋ถ๋ฆฌ |
eager_count, lazy_count, eager_frt, eager_reachability |
GRAFTยทIHAVEยทIWANTยท๋ฉ์์ง ID์ ๊ทผ๊ฑฐํ ์ถ์ ์น. ๋ฏธ๋ถ๋ฅ ์๋ฅผ ๋ณ๋ ํ์ํ๊ณ eager FRT๋ ๋ถ๋ฅ๋ ์์ ์ค ์๊ฐ ๊ทผ๊ฑฐ๊ฐ ์๋ ํ๋ณธ๋ง ์ฌ์ฉ |
pub_map, propa_map, reach_map, eager_propa_map, eager_reach_map |
research.messages์ ๋ฐํยท์์ ยท๋ถ๋ชจยทhopยท๋ชจ์ง๋จยท์ถ์ ๊ทผ๊ฑฐ์ ์ ํ/์ถ์ eager ๋์ ๊ณก์ . JSONยทCSV ๋ด๋ณด๋ด๊ธฐ |
dup_map, time |
๋ฉ์์ง๋ณ ์ค๋ณต ๋์ ๊ณก์ ๋ฐ ์๊ฐ ์ถ. ์์ ์ค๋ณต ์ด๋ฒคํธ๋ events.jsonl์ ๋ณด์กด |
send_ihave, recv_ihave, send_iwant, recv_iwant |
RPC ๋ด ํด๋น control ์ข ๋ฅ์ ๊ด์ธก ํ์, entry ์, message-ID ์ฐธ์กฐ ์๋ฅผ ๊ตฌ๋ถ |
logical_send_ihave, logical_recv_ihave, logical_send_iwant, logical_recv_iwant |
๊ด๊ณ ยท์์ฒญ ID ๊ฐ์. ๊ณ ์ ID ๊ฐ์๋ ์ค์ ์ ๋ฌ ๋ฐ์ดํธ์ ๋ค๋ฆ |
send_graft, send_prune, logical_send_graft, logical_send_prune |
๊ด์ธก mesh ์ ์ด์ reciprocal ๋
ผ๋ฆฌ ๊ฐ์ ์์ฑยท์ ๊ฑฐ. wire RPC ํ์๋ ๋ณ๋ _rpc ๊ณ์ด |
| v3 ์ถ๊ฐ | IDONTWANT, drop control, ๋ฏธ๋ถ๋ฅ ๊ฒฝ๋ก, lifecycleยท์ ์ ์์ฝ, ์ค์ libp2p ์คํธ๋ฆผ ์ก์์ ๋ฐ ํ๋กํ ์ฝ๋ณ B/W |
Pythonยท๋ฐฐ์น ์๊ฐํ
| v2 ์์ค | v3 ๋๊ตฌ |
|---|---|
basic_graph/* |
Series/Case ๋ฐ๋ณต ํ๊ท ยทํ๋ณธ SD, ์์ ์งํ์ D ์กฐ๊ฑด, ์ฐจ์ ํ๋ฅ ๋น๊ต |
compare_graph/* |
๋์ผ case ๊ธฐ์ค ์ฐจ์ด, target/(target+baseline), target/baseline ๋ฐ ์ค์ฐจ ์ ํ |
trade-off_graph/* |
FRTโDRC ์ฐ์ ๋, reach ์์, ๊ธฐ์ค ํ์ดํ, 2/3๋ชฉ์ Pareto, ๊ฐ์ค ์ ์, i/f ๊ทธ๋ฃน๊ณผ p ํํฐ |
time_vs_metric_plot.py |
์ ํยท์ค๋ณต ๋์ ๊ณก์ , ์ ํ/๋ก๊ทธ ์๊ฐ ์ถ, ๊ฒฐํฉ ํจ๋ |
calc_lazy_metric.py |
๊ฐ์ case์ lazy-off ๊ธฐ์ค์ ์ด์ฉํ ๊ธฐ์ฌยท๊ฒน์นจยทํจ์จ ๋ฑ 8๊ฐ ๊ด์ธก ์ถ์ |
dup_regression.py |
v2 ์ค๋ณต ํ๊ท์ 4๊ฐ, ๊ณ์ยทrankยทํ์ต ์๋ฃ Rยฒ ๋ฐ ๊ด์ธก/์ ํฉ ๋น๊ต |
old/graphic.py |
v2 metric JSONL๊ณผ x/y ์์ฝ ๊ฐ์ ธ์ค๊ธฐ, ์์ ์งํยท์ถยท์์์ ์ฐ์ ๋ |
old/propagation.py, old/prop_plot.py |
๋ฉ์์ง๋ณ ์ต์ด ์์ ๊ฒฝ๋ก, ์ง์ฐยทhop ๋ถํฌ, ์๊ฐยทhop๋ณ ํ๊ท ๋์ ์์ ์์ ์ฆ๊ฐ๋ |
old/prop_plot_graph.py |
์ ํ CSVยทJSON ๊ณก์ overlay, ์๋ ํฌ๊ธฐ/์ต๋๊ฐ ์ ๊ทํ |
old/mean_degree_ratio.py |
Total/Count ์๋ฃ ๊ฐ์ ธ์ค๊ธฐ์ snapshot ํ๊ท ์ฐจ์ ํ๋ฅ |
old/clustering_vs_eigenvector.py |
๋ ์งํ ์ฐ์ ๋์ ๊ธฐ์ค case ํ์ดํ |
old/frt_drc_graph.py |
v2์ ํ๋์ฝ๋ฉ๋ ์ญ์ฌ์ /ER ์ฐธ๊ณ ๊ทธ๋ฆผ 3๊ฐ. ํ์ฌ ์คํ ๋ฐ์ดํฐ์ ๋ถ๋ฆฌ๋ ๋ฒํผ |
old/fitting.py |
๊ฐ์ค Student-t MLE, df/location/scale ๋ณํ, ๋จ๋ณ๋ยท๋ค๋ณ๋ ์ด์ฐจ ํ๊ท, ์ง์ D ์กฐ๊ฑด์ ์์ธก ๋ถํฌ |
image_gen.sh, total_image_gen.sh, run*.sh |
์ ํ ๊ฒฐ๊ณผ์ ์๋ฒ ๋ถ์ ์ ์, ์ ์ฒด PNG/CSV/์ฐจํธ ์ ์ ZIP. ๊ธฐ์กด Python ๊ฒฝ๋ก ์ค์ ์ด๋ CLI๋ฅผ ์คํํ๋ ๋ฐฉ์์ ์๋ |
Import๋ ํ์ผ๋น 32MiB๊น์ง ์ง์ํฉ๋๋ค. ์ ๊ณต ํ์์ metric JSONL, ์ ํ tree JSON/JSONL, ์ค๋ณต ์๊ฐ map, x_case/y/yerrยทx/y JSON, ์ซ์ CSV, v3 ๋ถ์ JSON์ ๋๋ค. ์์์ v2 ๋ด๋ถ ์๋ฃ ๊ตฌ์กฐ ์ ๋ถ๋ฅผ ์๋ ํ๋ณํ๊ฑฐ๋ ์๋ ๋๋ ํฐ๋ฆฌยทํ์ผ๋ช ์ ๊ทธ๋๋ก ์ฌํํ์ง๋ ์์ต๋๋ค. ์์ธํ ์กฐ์์ ์๊ฐํ๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
ํด์๊ณผ ์์๋ฃ
์ ํํ ์์ยท์ง๊ณยท๊ทธ๋ํ ํ๋ณธยทEager/Lazy ์ถ์ ์ ์ ์ฅ ๊ฒฐ๊ณผ ์ฐ๊ตฌ ์งํ์์ ๊ด๋ฆฌํฉ๋๋ค. v2์ ๋น๊ตํ ๋ ๋ค์ ์ฐจ์ด๋ฅผ ์ ์งํ์ญ์์ค.
- ๋ฉ์ธ Metrics์ ์ธ์
๊ธฐ๊ฐ ์ ์์ v2 ๊ทธ๋ฆผ์ ์ํ
research์ ์๋ ๋ณ๊ฐ์ ๋๋ค. ์ฐ๊ตฌ reachability๋ ์์ ์์ ์ ์กฐ๊ฑด๋ถ์ธ ๋ชจ์ง๋จ์ ์ฌ์ฉํ๋ฉฐ, ๋ฉ์์ง๋ณ ์งํ์ ๋์ ๊ณก์ ์ ๊ฐ์ค ๋ฐฉ์๋ ๋ค๋ฆ ๋๋ค. - v2 reciprocal GRAFT ๊ทธ๋ํ์ v3์ ํ๋ณธ ์ด์ ๊ทธ๋ํ๋ ๋์ผํ ๊ด์ธก์ด ์๋๋๋ค. v3 ์ ์ฅ ๊ทธ๋ํ๋ ํ ํฝ์ ํฉ์น ๋ฌด๋ฐฉํฅ ๊ฐ์ ์ด๋ฉฐ ๋ถ์์ ์ต๋ 1,440๊ฐ ๊ด์ธก ํ๋ณธ์ ์ฌ์ฉํฉ๋๋ค. ์๋ณธ ๊ฐ์ ์ด ์๋ ์์ ์์ฝ์ผ๋ก ์ ์ค์ฌ์ฑยท๊ฒฝ๋ก ์งํ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค.
- ์ถ์ ๋ eager/lazy, ์๋ ค์ง์ง ์์ ์ถ์ฒ, ๋ชจ๋ธ ์์ธก๊ณผ v2์ ๊ณ ์ ์ญ์ฌ์ /ER ์ฐธ๊ณ ์๋ฃ๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ๋ก๊ทธ์ ๋ฉ์์ง ID๋ ์ค์ ๋ฐ์ ํ ์์ธ์ ์ง์ ์ฆ๋ช ํ์ง ์์ต๋๋ค.
- ์ค์๊ฐ๊ณผ ๋ชจ์ง๋จ ํฉ์งํฉ์ ๋ฐ๋ก์ก์ ์ฐ๊ตฌ ์ง๊ณ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Student-t๋ ๊ฐ์ ํ๋ณธ 60,000๊ฐ๋ฅผ ๋ง๋ค๊ฑฐ๋ ์คํจ ์ ์์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ง ์๊ณ ๊ด์ธก ํ๋ฅ ์ ์ง์ ์ ํฉํฉ๋๋ค. ๋ฐ๋ผ์ ๊ธฐ์กด Python ์์นยทํ์ผ ๊ตฌ์กฐยท๊ทธ๋ฆผ์ ์์ ํ ๋์ผ์ฑ์ ์ฃผ์ฅํ์ง ์์ต๋๋ค.
์ ์์ธ ID์ ๊ทธ๋ํ ๊ฐ์ ์ ํด๋น ๋ฒ์ ์ผ๋ก ๋ฐฐํฌํ ์ดํ ์์งํ ๋ก๊ทธ์๋ง ์กด์ฌํฉ๋๋ค. ํ๋ยท์๋ต ํ๋๋ API, ์๋ณธยท๋ถ์ยท์ด๋ฏธ์ง ๊ตฌ๋ถ์ ๋ณด์กด ์๋ด, v3์ ์ถ๊ฐํ ์ค์ ์คํธ๋ฆผ B/W์ ๋ฒ์๋ ๋์ญํญ ์ ์๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
๊ณ์ฐ ๊ฒ์ฆ์ ์ฐ๊ตฌ ์งํ ํ ์คํธ์ ์ถ์ฒ ์ถ์ ํ ์คํธ, ๋ก๊ทธ๋ Peer tracer ํ ์คํธ, ๊ฐ์ ธ์ค๊ธฐยท๋น๊ตยท๊ทธ๋ฆผ์ ์ฐ๊ตฌ UI ํ ์คํธ์ ๊ฒฐ๊ณผ ์ด๋ฏธ์ง ํ ์คํธ์ ์์ต๋๋ค. ์์ค ๋ชฉ๋ก ๊ฒ์ฌ๋ ๊ฐ๋ฐ ์๋ด๋ฅผ ๋ฐ๋ฆ ๋๋ค.