Pagsasaayos at Pagpapatakbo ng isang Qubic Archive Server
I-set up ang isang archive server upang mag-imbak at mag-validate ng Qubic transaction data gamit ang mga script para sa pagpapanatili ng peer, tick files, at epochs.
Qsilver Β· Enero 22, 2024.
Panimula
Ang Qubic ay hindi ang iyong ordinaryong crypto! Dahil walang blockchain, hindi agad malinaw kung paano na-validate ang mga transaksyon, at ang lingguhang pruning ng transaction data ay nagdudulot ng hamon sa pagtukoy ng mga nakaraang transaksyon. Ang archive server ay nag-aaddress ng mga isyung ito sa pamamagitan ng awtomatikong pag-iimbak ng lahat ng kaugnay na data mula sa bawat epoch, na hinahawakan ang mga pagbabago ng epoch nang walang recompilation (maliban kung magbago ang network protocol).
Setup at Compilation
Ipagpalagay na gumagamit ng Linux server, sundin ang mga hakbang na ito upang i-set up ang archive server:
git clone <https://github.com/Qsilver97/qubic-cli>
cd qubic-cli
mkdir build
cd build
cmake ..
make
g++ -I.. ../bxid.cpp ../connection.cpp -o bxid
Ang iyong sistema ay mangangailangan ng g++
upang mag-compile ng C++ code, cmake
, at e2fsprogs
. Kadalasan, ito ay kasama na bilang standard at maaaring hindi na kailanganing i-install gamit ang apt-get
.
Pagpapatakbo ng Archive Server
Upang patakbuhin ang archive server nang tuloy-tuloy, gumamit ng infinite loop bash scripts:
while true; do ACTION; done
Patakbuhin ang bawat script sa isang magkahiwalay na window o asynchronously gamit ang &
. Kung may panganib ng disconnection, gumamit ng:
nohup ./script > script.out &
Mga Aksyon at Script
1. Pagpapanatili ng Listahan ng Peers
Gumawa ng loop script gamit ang aksyong ito:
./bxid peersloop
Ang script na ito ay mag-a-update ng peer directory gamit ang mga file na pinangalanan batay sa mga IP address ng peer, mahalaga para sa mga query upang mahanap ang kasalukuyan at nakaraang epoch peers.
2. Pagkuha ng Tick Files
Gumawa ng loop script gamit ang aksyong ito:
./bxid maketickfiles
Ang script na ito ay nagse-save ng quorum files at tick data sa kanilang mga kaukulang direktoryo. Ito ay gumagana sa dalawang phases: parallel requests upang makuha ang tick files at isang sequential mode na may retries. Ang pagpapatakbo ng script na ito sa isang loop ay nagsisiguro ng mas maraming files na makuha sa bawat iterasyon.
3. Pag-scan ng Epochs
Gumawa ng loop script gamit ang aksyong ito:
./bxid scanepoch 0
Ang halaga ng epoch na 0 ay nangangahulugang ang script ay tutukoy sa kasalukuyang epoch at magbuo ng .json
files para sa archive. Tiyaking ang computors
file para sa tinukoy na epoch ay magagamit.
4. Pagbuo ng JSON Files at Pag-post sa OpenSearch
Gumawa ng loop script gamit ang aksyong ito:
./bxid jsonfiles
Ang script na ito ay bumubuo ng .json
files at ipinopost ito sa OpenSearch, nagsasagawa ng pangunahing pag-validate at nagtatanggal ng mga invalid files.
5. Pag-validate
Gumawa ng loop script gamit ang aksyong ito:
./bxid validate
Ang script na ito ay nagva-validate ng quorum votes, tinitiyak ang 451+ na boto na may mga tugmang hash at sinusuri ang tick data hash. Ito ay nagsusulat ng protect sa mga validated files upang maiwasan ang revalidation.
Paggamit ng OpenSearch
I-install ang OpenSearch sa pamamagitan ng pagsunod sa mga tagubilin sa opensearch.org. Tiyaking ito ay magagamit sa localhost:9200
. Baguhin ang opensearch()
at opensearchpost()
functions sa bxidutils.cpp
upang gumamit ng tamang kredensyal kung ang logins at certificates ay idinagdag. Upang patakbuhin ang archive server nang walang OpenSearch, i-comment out ang #define POST_TO_OPENSEARCH
sa bxid.cpp
.
Karagdagang Kasangkapan
Para sa mga may access sa isang computor log feed, lumikha ng bxid
dataset gamit ang:
./qubic-cli -nodeip (ipaddr) -getlogfromnode (pass0) (pass1) (pass2) (pass3)
./bxid logjson logfileN
Palitan ang N
ng source number ng computor log entries. Ito ay lumikha at nagpapanatili ng logs sa logs/(epoch)/logfileN
at ang .json
file nito.
Panghuling Tala
Magdagdag ng script upang isama ang:
./bxid qchain 0
Ito ay bumubuo ng qchain
dataset, isang digest ng lahat ng invariant data sa quorum vote at ang nakaraang tick digest. Ito ay nakakatulong upang matiyak ang magkatulad na data sa iba't ibang archive.
Konklusyon
Ang setup ng archive server na may iba't ibang script ay nagsisiguro na ang Qubic transaction data ay kumprehensibong nakaimbak at na-validate. Sa mga kasangkapang ito, maaari kang magpanatili ng isang matibay na archive server na kayang hawakan ang natatanging proseso ng transaksyon ng Qubic.
Para sa pinakabagong mga update, sumali sa Valis Discord, sundan kami sa X, at i-bookmark ang aming blog.
Sa pahinang ito
- Pagsasaayos at Pagpapatakbo ng isang Qubic Archive Server
- Panimula
- Setup at Compilation
- Pagpapatakbo ng Archive Server
- Mga Aksyon at Script
- 1. Pagpapanatili ng Listahan ng Peers
- 2. Pagkuha ng Tick Files
- 3. Pag-scan ng Epochs
- 4. Pagbuo ng JSON Files at Pag-post sa OpenSearch
- 5. Pag-validate
- Paggamit ng OpenSearch
- Karagdagang Kasangkapan
- Panghuling Tala
- Konklusyon