-

@ Bitcoin ba kamo?
2025-05-22 00:16:15
Peer Sampling Service
Ang paghahanapan ng mga nodes at paggawa ng bawat node ng listahan ng peers sa network ay maibabalot sa peer sampling service. Sa malaking network, hindi praktikal at kailangan malaman lahat ng iba pang kasamang nodes, kundi subset lamang.
Simple lang ang implementasyon nito. Pwedeng dalawang paraan lang ang gamitin:
init() - Pansimula o initialize ng serbisyo kung hindi pa ito nagagawa ng isang node.
getPeer() - Ang pagbalik ng peer address o node identifier basta may iba pang kasapi sa network.
Partial View
Ito ay ang pangkat ng mga pagkakakilanlan ng mga nodes, o node identifiers, na ibibigay sa bawat isang node. Tipikal na node identifier ay ang tuple ng (ip : port). May nakatakdang bilang ng kasapi sa listahang ito. Ang bilang na nakukuha ng bawat node ay pare-parehas, subalit magkakaiba ang nilalaman.
Ang pagkakaayos ng node identifier ay nakabase sa hop count, mula sa pinakamababa, pataas. Ang hop count ay ang bilang ng pagtalon ng mensahe mula sa pinanggagalingang node. Kaya mayroong mga magkakaparehas ang hop count sa isang partial view. Bakit? Balikan ang ilustrasyon sa pagkalat ng mensahe sa Gossip protocol.
Ang partial view ay overlay network (nanaman), sa pananaw ng node.
May 2 stratehiya para magpanatili ng partial views:
> Reactive - ina-update lamang ang partial view kapag mayroong pangyayari na nakakaapekto sa overlay. Halimbawa, kapag may bagong node na sumali o pag may umalis sa network.
> Cyclic - Dito naman, ang partial view ay ina-update kada takdang oras, kung saan nagkakaroon ng pagpapalit ng impormasyon ng mga magkakapitbahay.
Kapag stable ang network, ang partial view ay hindi nagbabago sa reactive na stratehiya. Samantalang sa cyclic na stratehiya, nagbabagu-bago ang partial view kahit stable ang network.
Mga katangian ng Partial View
Ang mga sumusunod ay maaaring magamit para sukatin ang kalidad ng partial view.
> Connectivity - Syempre, dapat konektado ang mga nodes sa partial view. Kahit isang koneksyon lang ng bawat node sa iba ang kailangan para masabing walang nahiwalay na node.
> Degree Distribution - sa isang graph na hindi mahalaga ang direksyon (undirected), ang degree ay ang dami ng edges. Pero sa usapan ng partial views, directed ang graph, ang direksyon palabas at papasok ng isang node ay tinuturing na magkaiba. Mayroong in-degree at out-degree ang node. Ang in-degree ng isang node, n, ay ang dami ng nodes na mayroong identifier ni n sa kanilang partial view. Dito masusukat kung gaaano kadali maabot ang node, ang probability na matatanggap nito ang mensahe at ang maximum na redundant na mensahe. Ang out-degree naman ng n ay ang dami ng nodes sa sarili nyang partial view. Dito masusukat kung gaano kahalaga ang node na iyon para mapanatili ang overlay.
>Average Path Length - Ito ay average ng lahat ng pinakamaiksing paths sa pagitan ng mga pares ng nodes sa partial view. Mas mainan na mababa ito dahil sa relasyon nito sa tagal ng pagpasa ng mensahe sa lahat ng nodes.
> Clustering Coefficient - sa isang node, ang clustering coefficient ay makukuha sa pagbilang ng dami ng edges sa pagitan ng mga kapitbahay nito, at idi-divide sa maximum na posibleng edges sa mga naturang kapitbahay. Ito ay may value na 0 hanggang 1. Ang clustering coefficient ng graph ng partial view ay ang average ng lahat ng clustering coefficients. Hindi natin gusto na masyadong konektado ang mga kapitbahay na nodes sa isa’t isa. Bakit? Kapag mataas kasi ang clustering coefficient, mas mataas ang redundancy ng mga mensahe. Kapag mataas din ang clustering coefficient, sa isang panig ng graph, mas madali itong mahiwalay, dahil posibleng umiikot lang sa isang cluster ng mga nodes ang mensahe, sa halip na maabot ang mas malayong nodes.
> Accuracy - makukuha naman ito kapag binilang ang mga kapitbahay ng isang node na hindi pumalya (not failed) at idi-divide sa pangkalahatang dami ng kapitbahay. Ang accuracy ng graph ay ang average ng accuracy ng lahat ng correct nodes. Kapag mababa ang accuracy, maraming palyadong node ang mapipiling gossip target, na makakasira ng proseso. Kailangang taasan ang fanout kung ganun.
Ngayon at napag-usapan na natin ang mga basic na konsepto ng gossip protocol, pwede na natin tignan ang pangkalahatang ideya ng Bitcoin P2P Network.