# Pag-update ng Nethermind

## Updating Nethermind

### I-download ng Nethermind at i-konfigure ng serbisyo

[I-Download](https://downloads.nethermind.io/) ang pinakabagong bersyon ng Nethermind at patakbuhin ang proseso ng pagsusuri ng checksum upang tiyakin na hindi nabago ang na-download na file.

```bash
cd
curl -LO <URL_of_download_link>
echo "<checksum> <downloaded_file_name>" | sha256sum --check
```

{% hint style="info" %}
Ang bawat na-download na file ay may kanya-kanyang checksum. Palitan ang tunay na checksum at URL ng link ng pag-download sa bloke ng kodigo sa itaas.&#x20;

{% hint style="info" %}
Tiyakin na pumili ng bersyon ng amd64. Kanan-klik sa teksto ng link at piliin ang "copy link address" upang makuha ang URL ng link ng pag-download na i-curl.
{% endhint %}
{% endhint %}

<figure><img src="/files/crPAkyhX5u5HShFdfkpd" alt=""><figcaption></figcaption></figure>

**Inaasahang output**: Suriin ang output ng pagsusuri ng checksum.

```
nethermind-<version>.zip: OK
```

Kung ang checksum ay na-verify, i-ekstrak ang mga file at ilipat ang mga ito sa (`/usr/local/bin`) directory para sa kalinisan at pinakamahusay na praktis. Pagkatapos, linisin ang mga duplicated na kopya.

```bash
unzip nethermind-<version>.zip -d nethermind
sudo cp -a nethermind /usr/local/bin/nethermind
rm -r nethermind-<version>.zip nethermind
```

### I-restart ang serbisyo ng Nethermind

I-reload ang systemd daemon upang magparehistro ng mga ginawang pagbabago, simulan ang Nethermind, at suriin ang status nito upang siguruhing tumatakbo ito.

```bash
sudo systemctl start nethermind.service
sudo systemctl status nethermind.service
```

**Inaasahang output**: Ang output ay dapat sabihing ang Nethermind ay "active (running)". Pindutin ang `CTRL-C` upang lumabas at magpapatuloy ang Nethermind sa pagtakbo.

Gamitin ang sumusunod na command upang suriin ang mga logs ng proseso ng pag-sync ng Nethermind. Mag-ingat sa anumang babala o error.

```bash
sudo journalctl -fu nethermind -o cat | ccze -A
```

Pindutin ang `CTRL-C` upang lumabas.

## Pag-prune sa Nethermind

### Aktibasyon ng mode ng pagbabalat

Ang iyong node ng ETH validator ay gagamit ng magagamit na espasyo sa disk habang lumalaki ang estado. Upang maiwasan ang mga error sa labas-ng-storage, mabuti na balatan ang iyong mga execution client sa panahon-panahon.&#x20;

Ang Nethermind ay kayang patakbuhin ang proseso nito sa pagbabalat sa background nang hindi pinipigilan ang mga operasyon nito, ngunit napakabigat ng gawain kaya't mararanasan mo ang ilang pagbaba sa performance sa panahong ito (\~20 - 30 oras).&#x20;

Upang paganahin ang proseso ng pagbabalat para sa Nethermind, buksan ang configuration file ng `systemd`&#x20;

```bash
sudo nano /etc/systemd/system/nethermind.service
```

at idagdag ang mga sumusunod na flag sa `[Service]` seksyon ng file depende sa iyong kagustuhan ng paraan ng pagbabalat.

{% tabs %}
{% tab title="Manwal" %}

```
[Service]
<existing_flags> \
--Pruning.Mode=Hybrid \
--Pruning.FullPruningTrigger=Manual
```

Ito ay magsisimula ng proseso ng pagbabalat kapag na-reload mo ang daemon at restart ang serbisyo.
{% endtab %}

{% tab title="Sa pamamagitan ng natitirang espasyo sa disk" %}

<pre><code><strong>[Service]
</strong>&#x3C;existing_flags> \
--Pruning.Mode=Hybrid \
--Pruning.FullPruningTrigger=VolumeFreeSpace \
--Pruning.FullPruningThresholdMb=300000
</code></pre>

Ito ay magtuturo sa Nethermind na paganahin ang kanyang mekanismo ng pagbabalat kapag bumaba ang dami ng magagamit na libreng espasyo sa iyong disk sa mas mababa sa 300GB.

***Tandaan**: Ang inirerekomendang threshold ay 250GB ngunit maging medyo maingat tayo.*
{% endtab %}

{% tab title="Sa pamamagitan ng gamit na disk space" %}

```
[Service]
<existing_flags> \
--Pruning.Mode=Hybrid \
--Pruning.FullPruningTrigger=StateDbSize \
--Pruning.FullPruningThresholdMb=1200000
```

Ito ay magtuturo sa Nethermind na paganahin ang proseso ng pagbabalat kapag lumampas na ang laki ng estado sa 1.2TB.
{% endtab %}
{% endtabs %}

I-save ito sa pamamagitan ng `Ctrl+O` at `Enter`, pagkatapos ay lumabas gamit ang `Ctrl+X`.&#x20;

I-restart ang daemon at ang serbisyo ng Nethermind.

```
sudo systemctl daemon-reload
sudo systemctl restart nethermind.service
sudo systemctl status nethermind.service
```

**Inaasahang output**: Ang status ay dapat na nagsasabi na ang Nethermind ay "active (running)".

### Pamantayan ng Paggupit

Kung na-konfigure mo nang tama ang mode ng pagbabalat, dapat mong makita ang mga sumusunod na logs\
\
Sa simula ng proseso ng pagbabalat:

> Full Pruning Ready to start: pruning garbage bago ang estado BLOCK\_NUMBER na may root ROOT\_HASH. BABALA: Nag-umpisa ang buong pagbabalat sa root hash ROOT\_HASH: huwag isara ang node hanggang matapos o mawawala ang progreso.

***\*Kung gayon, huwag paganahin muli ang iyong node mula dito hanggang matapos ang proseso ng pagbabalat. Kundi kailangan mong umpisahan muli ang buong proseso ng pagbabalat, o mas masahol pa, maaaring magdulot ito ng korapsyon sa iyong database.***

Matapos ang ilang minuto, makikita mo ang ilang progress logs:

> Full Pruning In Progress: 00:00:57.0603307 1.00 mln nodes mirrored.\
> Full Pruning In Progress: 00:01:40.3677103 2.00 mln nodes mirrored.\
> Full Pruning In Progress: 00:02:25.6437030 3.00 mln nodes mirrored.

Kapag natapos na ang proseso ng pagbabalat, makikita mo ang sumusunod na output:

> Full Pruning Finished: 15:25:59.1620756 1,560.29 mln nodes mirrored.

### Mga Tips

Ang proseso ng pagbabalat ay maaaring umabot ng mahigit sa 30 oras upang matapos (depende sa bilis ng CPU at IO). Sa panahong ito, maaaring magkaroon ka ng pagbaba sa performance sa iyong validator node - halimbawa, ang pagkawala ng \~10% ng mga attestation.

Dahil dito, mahalaga na itiming nang maayos ang iyong iskedyul ng pagbabalat upang hindi ito magkapareho sa iyong naka-iskedyul na mga tungkulin sa sync committee o block proposer. Maaari mong suriin ang mga ito sa ibaba.

* [Check scheduled sync committee duties](https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-ii-maintenance/checking-my-eth-validators-sync-committee-duties)
* [Check scheduled block proposal duties](https://wenmerge.com/block-proposer-schedule/)

Kung nais mong simulan agad ang proseso ng pagbabalat, itakda ang threshold ng sumusunod na flag sa anumang halaga na natitirang espasyo sa iyong disk.

> `--Pruning.FullPruningThresholdMb=<bytes>`

Tumakbo ng `df -h` sa iyong terminal upang malaman kung gaano karami ang natitirang espasyo sa iyong disk.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bitskwela.gitbook.io/bitskwela-x-lido-cs-fleet-eth-home-staking-guide/pagpapanatili-at-pag-update/pag-update-ng-nethermind.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
