<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Glitch Enjoyers</title>
        <link>https://paragraph.com/@glitch-enjoyers</link>
        <description>Blockchain validation with a passion for perfection. Ensuring security and decentralization one node at a time</description>
        <lastBuildDate>Thu, 25 Jun 2026 17:55:48 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Glitch Enjoyers</title>
            <url>https://storage.googleapis.com/papyrus_images/70b2ca59d5e585d791d130eea5317804555041e322fe86047b2b64689f7116b3.png</url>
            <link>https://paragraph.com/@glitch-enjoyers</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Guide to Setting Up a Validator Node for Fractal]]></title>
            <link>https://paragraph.com/@glitch-enjoyers/guide-to-setting-up-a-validator-node-for-fractal</link>
            <guid>BwnWZO64XpvUbfyFYHUs</guid>
            <pubDate>Wed, 27 Nov 2024 17:11:47 GMT</pubDate>
            <description><![CDATA[PrerequisitesSystem RequirementsOS: Ubuntu 20.04 or later (recommended for compatibility).CPU: 4+ cores.RAM: 16 GB or more.Storage: 500 GB SSD or more.Network: Reliable connection with at least 1 Gbps bandwidth.Dependenciescurlgitdocker and docker-composejq (JSON processor)makego (Golang, version 1.19+)Fractal IdentityEnsure you have registered with Fractal and obtained the necessary credentials.Step 1: Install DependenciesUpdate and Upgrade Your Systemsudo apt update &#x26;&#x26; sudo apt up...]]></description>
            <content:encoded><![CDATA[<h3 id="h-prerequisites" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Prerequisites</strong></h3><ol><li><p><strong>System Requirements</strong></p><ul><li><p>OS: Ubuntu 20.04 or later (recommended for compatibility).</p></li><li><p>CPU: 4+ cores.</p></li><li><p>RAM: 16 GB or more.</p></li><li><p>Storage: 500 GB SSD or more.</p></li><li><p>Network: Reliable connection with at least 1 Gbps bandwidth.</p></li></ul></li><li><p><strong>Dependencies</strong></p><ul><li><p><code>curl</code></p></li><li><p><code>git</code></p></li><li><p><code>docker</code> and <code>docker-compose</code></p></li><li><p><code>jq</code> (JSON processor)</p></li><li><p><code>make</code></p></li><li><p><code>go</code> (Golang, version 1.19+)</p></li></ul></li><li><p><strong>Fractal Identity</strong></p><ul><li><p>Ensure you have registered with <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://web.fractal.id/">Fractal</a> and obtained the necessary credentials.</p></li></ul></li></ol><hr><h3 id="h-step-1-install-dependencies" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 1: Install Dependencies</strong></h3><h4 id="h-update-and-upgrade-your-system" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Update and Upgrade Your System</h4><pre data-type="codeBlock" text="sudo apt update &amp;&amp; sudo apt upgrade -y
"><code>sudo apt update <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> sudo apt upgrade <span class="hljs-operator">-</span>y
</code></pre><h4 id="h-install-required-packages" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Install Required Packages</h4><pre data-type="codeBlock" text="sudo apt install -y curl git jq make gcc build-essential
"><code>sudo apt install <span class="hljs-operator">-</span>y curl git jq make gcc build<span class="hljs-operator">-</span>essential
</code></pre><h4 id="h-install-docker-and-docker-compose" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Install Docker and Docker Compose</h4><pre data-type="codeBlock" text="# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker $USER

# Install Docker Compose
sudo curl -L &quot;https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
"><code># Install Docker
curl <span class="hljs-operator">-</span>fsSL https:<span class="hljs-comment">//get.docker.com -o get-docker.sh</span>
sh get<span class="hljs-operator">-</span>docker.sh
sudo usermod <span class="hljs-operator">-</span>aG docker $USER

# Install Docker Compose
sudo curl <span class="hljs-operator">-</span>L <span class="hljs-string">"https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)"</span> <span class="hljs-operator">-</span>o <span class="hljs-operator">/</span>usr<span class="hljs-operator">/</span>local<span class="hljs-operator">/</span>bin<span class="hljs-operator">/</span>docker<span class="hljs-operator">-</span>compose
sudo chmod <span class="hljs-operator">+</span>x <span class="hljs-operator">/</span>usr<span class="hljs-operator">/</span>local<span class="hljs-operator">/</span>bin<span class="hljs-operator">/</span>docker<span class="hljs-operator">-</span>compose
</code></pre><h4 id="h-install-go" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Install Go</h4><pre data-type="codeBlock" text="wget https://golang.org/dl/go1.19.10.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.19.10.linux-amd64.tar.gz
echo &quot;export PATH=$PATH:/usr/local/go/bin&quot; &gt;&gt; ~/.bashrc
source ~/.bashrc
"><code>wget https:<span class="hljs-comment">//golang.org/dl/go1.19.10.linux-amd64.tar.gz</span>
sudo tar <span class="hljs-operator">-</span>C <span class="hljs-operator">/</span>usr<span class="hljs-operator">/</span>local <span class="hljs-operator">-</span>xzf go1<span class="hljs-number">.19</span><span class="hljs-number">.10</span>.linux-amd64.tar.gz
echo <span class="hljs-string">"export PATH=$PATH:/usr/local/go/bin"</span> <span class="hljs-operator">></span><span class="hljs-operator">></span> <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.bashrc
source <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.bashrc
</code></pre><hr><h3 id="h-step-2-clone-the-fractal-repository" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 2: Clone the Fractal Repository</strong></h3><p>Navigate to your desired directory and clone the Fractal repository:</p><pre data-type="codeBlock" text="git clone https://github.com/fractalprotocol/fractal-node.git
cd fractal-node
"><code>git <span class="hljs-built_in">clone</span> https://github.com/fractalprotocol/fractal-node.git
<span class="hljs-built_in">cd</span> fractal-node
</code></pre><hr><h3 id="h-step-3-build-the-node" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 3: Build the Node</strong></h3><h4 id="h-initialize-submodules" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Initialize Submodules</h4><pre data-type="codeBlock" text="git submodule update --init --recursive
"><code>git submodule update <span class="hljs-operator">-</span><span class="hljs-operator">-</span>init <span class="hljs-operator">-</span><span class="hljs-operator">-</span>recursive
</code></pre><h4 id="h-build-the-node" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Build the Node</h4><pre data-type="codeBlock" text="make build
"><code><span class="hljs-built_in">make</span> build
</code></pre><p>The resulting binary should be located in the <code>build</code> directory.</p><hr><h3 id="h-step-4-configure-the-node" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 4: Configure the Node</strong></h3><h4 id="h-generate-configuration-files" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Generate Configuration Files</h4><pre data-type="codeBlock" text="./build/fractal-node init &lt;your-validator-name&gt; --chain-id fractal-mainnet
"><code>./build<span class="hljs-operator">/</span>fractal<span class="hljs-operator">-</span>node init <span class="hljs-operator">&#x3C;</span>your<span class="hljs-operator">-</span>validator<span class="hljs-operator">-</span>name<span class="hljs-operator">></span> <span class="hljs-operator">-</span><span class="hljs-operator">-</span>chain<span class="hljs-operator">-</span>id fractal<span class="hljs-operator">-</span>mainnet
</code></pre><p>Replace <code>&lt;your-validator-name&gt;</code> with your desired name.</p><h4 id="h-edit-the-configuration" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Edit the Configuration</h4><p>Navigate to the configuration folder:</p><pre data-type="codeBlock" text="cd ~/.fractal/config
"><code>cd <span class="hljs-operator">~</span><span class="hljs-operator">/</span>.fractal/config
</code></pre><p>Open the <code>config.toml</code> file and update the following:</p><ul><li><p><strong>Peers and Seeds</strong></p><pre data-type="codeBlock" text="persistent_peers = &quot;&lt;peer-list&gt;&quot;
seeds = &quot;&lt;seed-list&gt;&quot;
"><code><span class="hljs-attr">persistent_peers</span> = <span class="hljs-string">"&#x3C;peer-list>"</span>
<span class="hljs-attr">seeds</span> = <span class="hljs-string">"&#x3C;seed-list>"</span>
</code></pre></li><li><p><strong>Minimum Gas Prices</strong></p><pre data-type="codeBlock" text="minimum-gas-prices = &quot;0.001ufractal&quot;
"><code>minimum<span class="hljs-operator">-</span>gas<span class="hljs-operator">-</span>prices <span class="hljs-operator">=</span> <span class="hljs-string">"0.001ufractal"</span>
</code></pre></li><li><p><strong>Prometheus</strong> Enable metrics for monitoring:</p><pre data-type="codeBlock" text="prometheus = true
"><code><span class="hljs-attr">prometheus</span> = <span class="hljs-literal">true</span>
</code></pre></li></ul><hr><h3 id="h-step-5-start-the-node" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 5: Start the Node</strong></h3><h4 id="h-run-the-node" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Run the Node</h4><pre data-type="codeBlock" text="./build/fractal-node start
"><code>./build<span class="hljs-operator">/</span>fractal<span class="hljs-operator">-</span>node start
</code></pre><h4 id="h-use-docker-optional" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Use Docker (Optional)</h4><p>If you prefer Docker:</p><pre data-type="codeBlock" text="docker-compose up -d
"><code>docker<span class="hljs-operator">-</span>compose up <span class="hljs-operator">-</span>d
</code></pre><hr><h3 id="h-step-6-create-and-fund-a-validator" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 6: Create and Fund a Validator</strong></h3><h4 id="h-create-a-wallet" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Create a Wallet</h4><pre data-type="codeBlock" text="./build/fractal-node keys add &lt;wallet-name&gt;
"><code>./build<span class="hljs-operator">/</span>fractal<span class="hljs-operator">-</span>node keys add <span class="hljs-operator">&#x3C;</span>wallet<span class="hljs-operator">-</span>name<span class="hljs-operator">></span>
</code></pre><h4 id="h-fund-the-wallet" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Fund the Wallet</h4><p>Transfer some tokens to your wallet address from an exchange or faucet.</p><h4 id="h-create-the-validator" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Create the Validator</h4><pre data-type="codeBlock" text="./build/fractal-node tx staking create-validator \
  --amount=1000000ufractal \
  --pubkey=$(./build/fractal-node tendermint show-validator) \
  --moniker=&quot;&lt;your-validator-name&gt;&quot; \
  --chain-id=fractal-mainnet \
  --commission-rate=&quot;0.10&quot; \
  --commission-max-rate=&quot;0.20&quot; \
  --commission-max-change-rate=&quot;0.01&quot; \
  --min-self-delegation=&quot;1&quot; \
  --from=&lt;wallet-name&gt; \
  --fees=2000ufractal
"><code>./build<span class="hljs-operator">/</span>fractal<span class="hljs-operator">-</span>node <span class="hljs-built_in">tx</span> staking create<span class="hljs-operator">-</span>validator \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>amount<span class="hljs-operator">=</span>1000000ufractal \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>pubkey<span class="hljs-operator">=</span>$(./build<span class="hljs-operator">/</span>fractal<span class="hljs-operator">-</span>node tendermint show<span class="hljs-operator">-</span>validator) \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>moniker<span class="hljs-operator">=</span><span class="hljs-string">"&#x3C;your-validator-name>"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>chain<span class="hljs-operator">-</span>id<span class="hljs-operator">=</span>fractal<span class="hljs-operator">-</span>mainnet \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>commission<span class="hljs-operator">-</span>rate<span class="hljs-operator">=</span><span class="hljs-string">"0.10"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>commission<span class="hljs-operator">-</span>max<span class="hljs-operator">-</span>rate<span class="hljs-operator">=</span><span class="hljs-string">"0.20"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>commission<span class="hljs-operator">-</span>max<span class="hljs-operator">-</span>change<span class="hljs-operator">-</span>rate<span class="hljs-operator">=</span><span class="hljs-string">"0.01"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>min<span class="hljs-operator">-</span><span class="hljs-built_in">self</span><span class="hljs-operator">-</span>delegation<span class="hljs-operator">=</span><span class="hljs-string">"1"</span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-keyword">from</span><span class="hljs-operator">=</span><span class="hljs-operator">&#x3C;</span>wallet<span class="hljs-operator">-</span>name<span class="hljs-operator">></span> \
  <span class="hljs-operator">-</span><span class="hljs-operator">-</span>fees<span class="hljs-operator">=</span>2000ufractal
</code></pre><hr><h3 id="h-step-7-monitor-and-maintain" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 7: Monitor and Maintain</strong></h3><h4 id="h-check-node-logs" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Check Node Logs</h4><pre data-type="codeBlock" text="journalctl -u fractal-node -f
"><code>journalctl <span class="hljs-operator">-</span>u fractal<span class="hljs-operator">-</span>node <span class="hljs-operator">-</span>f
</code></pre><h4 id="h-monitor-metrics" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Monitor Metrics</h4><p>If Prometheus is enabled, access metrics at <code>http://&lt;node-ip&gt;:26660</code>.</p><h4 id="h-upgrade-node" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Upgrade Node</h4><p>Keep your node updated:</p><pre data-type="codeBlock" text="git pull origin main
make build
"><code>git pull origin <span class="hljs-selector-tag">main</span>
make build
</code></pre>]]></content:encoded>
            <author>glitch-enjoyers@newsletter.paragraph.com (Glitch Enjoyers)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/2dd9d370a87d33513ad8a694d26d112a234ab4269aea36e1836f492d70b83284.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Validator Node for BounceBit Installation]]></title>
            <link>https://paragraph.com/@glitch-enjoyers/validator-node-for-bouncebit-installation</link>
            <guid>qRUD0KhVHvxN4naCfvmq</guid>
            <pubDate>Wed, 27 Nov 2024 17:09:24 GMT</pubDate>
            <description><![CDATA[PrerequisitesBefore starting, make sure you have the following:A Linux server (Ubuntu 20.04/22.04) with at least:4 CPUs8 GB RAM200 GB SSD storageA static public IP addressBasic command-line knowledge.Docker and Docker Compose installed on your server.BounceBit Wallet to receive rewards.A stable internet connection for uninterrupted uptime.Step 1: Install Required ToolsStart by updating your server and installing necessary tools:# Update packages and install dependencies sudo apt update &#x26;...]]></description>
            <content:encoded><![CDATA[<h2 id="h-prerequisites" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Prerequisites</strong></h2><p>Before starting, make sure you have the following:</p><ol><li><p><strong>A Linux server (Ubuntu 20.04/22.04)</strong> with at least:</p><ul><li><p>4 CPUs</p></li><li><p>8 GB RAM</p></li><li><p>200 GB SSD storage</p></li><li><p>A static public IP address</p></li></ul></li><li><p><strong>Basic command-line knowledge.</strong></p></li><li><p><strong>Docker and Docker Compose</strong> installed on your server.</p></li><li><p><strong>BounceBit Wallet</strong> to receive rewards.</p></li><li><p><strong>A stable internet connection</strong> for uninterrupted uptime.</p></li></ol><hr><h2 id="h-step-1-install-required-tools" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 1: Install Required Tools</strong></h2><p>Start by updating your server and installing necessary tools:</p><pre data-type="codeBlock" text="# Update packages and install dependencies
sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install curl wget git build-essential -y

# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

# Install Docker Compose
sudo apt install docker-compose -y
"><code># Update packages and install dependencies
sudo apt update <span class="hljs-operator">&#x26;</span><span class="hljs-operator">&#x26;</span> sudo apt upgrade <span class="hljs-operator">-</span>y
sudo apt install curl wget git build<span class="hljs-operator">-</span>essential <span class="hljs-operator">-</span>y

# Install Docker
curl <span class="hljs-operator">-</span>fsSL https:<span class="hljs-comment">//get.docker.com -o get-docker.sh</span>
sudo sh get<span class="hljs-operator">-</span>docker.sh
sudo usermod <span class="hljs-operator">-</span>aG docker $USER

# Install Docker Compose
sudo apt install docker<span class="hljs-operator">-</span>compose <span class="hljs-operator">-</span>y
</code></pre><p>Log out and log back in to apply Docker permissions.</p><hr><h2 id="h-step-2-clone-the-bouncebit-repository" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 2: Clone the BounceBit Repository</strong></h2><p>Next, download the BounceBit node repository:</p><pre data-type="codeBlock" text="# Clone the BounceBit repository
git clone https://github.com/bouncebit/bouncebit-node.git
cd bouncebit-node
"><code><span class="hljs-comment"># Clone the BounceBit repository</span>
git <span class="hljs-built_in">clone</span> https://github.com/bouncebit/bouncebit-node.git
<span class="hljs-built_in">cd</span> bouncebit-node
</code></pre><hr><h2 id="h-step-3-configure-the-node" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 3: Configure the Node</strong></h2><p>Edit the configuration file to set up your node. Replace <code>&lt;YOUR_WALLET_ADDRESS&gt;</code> with your actual BounceBit wallet address:</p><pre data-type="codeBlock" text="nano config/config.toml
"><code>nano config<span class="hljs-operator">/</span>config.toml
</code></pre><p>Update the following fields:</p><pre data-type="codeBlock" text="[validator]
address = &quot;&lt;YOUR_WALLET_ADDRESS&gt;&quot;  # Replace with your BounceBit wallet address
"><code><span class="hljs-section">[validator]</span>
<span class="hljs-attr">address</span> = <span class="hljs-string">"&#x3C;YOUR_WALLET_ADDRESS>"</span>  <span class="hljs-comment"># Replace with your BounceBit wallet address</span>
</code></pre><p>Save the file (<code>CTRL + O</code>, then <code>CTRL + X</code>).</p><hr><h2 id="h-step-4-run-the-node" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 4: Run the Node</strong></h2><p>To start the node, use the provided Docker Compose configuration:</p><pre data-type="codeBlock" text="# Start the BounceBit node
docker-compose up -d
"><code><span class="hljs-comment"># Start the BounceBit node</span>
docker-compose up -d
</code></pre><p>This will download and run the necessary Docker containers. Check the logs to verify that the node is running:</p><pre data-type="codeBlock" text="docker-compose logs -f
"><code>docker<span class="hljs-operator">-</span>compose logs <span class="hljs-operator">-</span>f
</code></pre><hr><h2 id="h-step-5-sync-the-blockchain" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 5: Sync the Blockchain</strong></h2><p>The node will need to sync the BounceBit blockchain. This process can take a few hours depending on your server&apos;s performance and network speed. Monitor the logs to track the progress:</p><pre data-type="codeBlock" text="docker logs -f bouncebit-node
"><code>docker logs <span class="hljs-operator">-</span>f bouncebit<span class="hljs-operator">-</span>node
</code></pre><p>Once you see a message like <code>Node is fully synced</code>, your node is ready.</p><hr><h2 id="h-step-6-register-as-a-validator" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 6: Register as a Validator</strong></h2><p>To participate as a validator:</p><ol><li><p>Obtain the <strong>public key</strong> of your node:</p><pre data-type="codeBlock" text="docker exec bouncebit-node ./bouncebit-cli get-validator-key
"><code>docker exec bouncebit<span class="hljs-operator">-</span>node ./bouncebit<span class="hljs-operator">-</span>cli get<span class="hljs-operator">-</span>validator<span class="hljs-operator">-</span>key
</code></pre></li><li><p>Submit your public key to the BounceBit staking portal:</p><ul><li><p>Visit <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://staking.bouncebit.io/">BounceBit Staking Dashboard</a>.</p></li><li><p>Register your validator using the public key and your wallet address.</p></li></ul></li><li><p>Delegate some BounceBit tokens (BBT) to your validator to activate it.</p></li></ol><hr><h2 id="h-step-7-monitor-your-validator" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 7: Monitor Your Validator</strong></h2><p>Ensure your node remains online and performant. Use these commands:</p><ul><li><p><strong>Check Node Status:</strong></p><pre data-type="codeBlock" text="docker exec bouncebit-node ./bouncebit-cli status
"><code>docker exec bouncebit<span class="hljs-operator">-</span>node ./bouncebit<span class="hljs-operator">-</span>cli status
</code></pre></li><li><p><strong>Restart Node (if needed):</strong></p><pre data-type="codeBlock" text="docker-compose restart
"><code>docker<span class="hljs-operator">-</span>compose restart
</code></pre></li><li><p><strong>Update Node Software:</strong> Pull the latest updates from the repository and restart:</p><pre data-type="codeBlock" text="git pull
docker-compose down
docker-compose up -d
"><code>git pull
docker<span class="hljs-operator">-</span>compose down
docker<span class="hljs-operator">-</span>compose up <span class="hljs-operator">-</span>d
</code></pre></li></ul><hr><h2 id="h-troubleshooting" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Troubleshooting</strong></h2><ul><li><p><strong>Check Logs:</strong></p><pre data-type="codeBlock" text="docker-compose logs -f
"><code>docker<span class="hljs-operator">-</span>compose logs <span class="hljs-operator">-</span>f
</code></pre></li><li><p><strong>Disk Space Issues:</strong> Ensure you have at least 200 GB free storage. Clean up unused Docker containers and images:</p><pre data-type="codeBlock" text="docker system prune -a
"><code>docker system prune -<span class="hljs-selector-tag">a</span>
</code></pre></li></ul><hr><h2 id="h-step-8-secure-your-node" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Step 8: Secure Your Node</strong></h2><ol><li><p><strong>Enable a Firewall:</strong></p><pre data-type="codeBlock" text="sudo ufw allow ssh
sudo ufw allow 26656/tcp  # Replace with BounceBit’s P2P port
sudo ufw enable
"><code>sudo ufw allow ssh
sudo ufw allow 26656/tcp  <span class="hljs-comment"># Replace with BounceBit’s P2P port</span>
sudo ufw <span class="hljs-built_in">enable</span>
</code></pre></li><li><p><strong>Set Up Automatic Restarts:</strong> Configure Docker to restart the node on failure:</p><pre data-type="codeBlock" text="docker update --restart unless-stopped bouncebit-node
"><code>docker update <span class="hljs-operator">-</span><span class="hljs-operator">-</span>restart unless<span class="hljs-operator">-</span>stopped bouncebit<span class="hljs-operator">-</span>node
</code></pre></li></ol>]]></content:encoded>
            <author>glitch-enjoyers@newsletter.paragraph.com (Glitch Enjoyers)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/584a7bf443732cd5c3098ba1341338e577190cf01c58bf45e931f5eeed3e834d.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[The Emergence of Curators in the Symbiotic Ecosystem]]></title>
            <link>https://paragraph.com/@glitch-enjoyers/the-emergence-of-curators-in-the-symbiotic-ecosystem</link>
            <guid>dslZXnUn8n643x2ZL0Ac</guid>
            <pubDate>Thu, 12 Sep 2024 12:59:06 GMT</pubDate>
            <description><![CDATA[Blockchain ecosystems are rapidly evolving, and one of the most exciting developments in recent years is the concept of shared security. By aligning incentives across networks, shared security enhances the overall stability and decentralization of the blockchain space. Among the many frameworks driving this innovation, Symbiotic stands out for its modular design and ability to create efficient, secure connections between different actors. But the real game-changer? The rise of curators, emerg...]]></description>
            <content:encoded><![CDATA[<p>Blockchain ecosystems are rapidly evolving, and one of the most exciting developments in recent years is the concept of shared security. By aligning incentives across networks, shared security enhances the overall stability and decentralization of the blockchain space. Among the many frameworks driving this innovation, Symbiotic stands out for its modular design and ability to create efficient, secure connections between different actors. But the real game-changer? The rise of curators, emergent entities that optimize the ecosystem even further.</p><h3 id="h-symbiotic-a-framework-for-scalable-shared-security" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Symbiotic: A Framework for Scalable Shared Security</h3><p>At its core, Symbiotic provides a set of building blocks that allow various parties to enter into secure agreements without intermediaries. These &quot;primitives&quot; form the foundation for the ecosystem:</p><ol><li><p><strong>Collateral</strong>: The assets, which can exist on almost any blockchain, providing the economic foundation.</p></li><li><p><strong>Vaults</strong>: These entities manage staking, connecting collateral to various networks.</p></li><li><p><strong>Operators</strong>: The infrastructure experts who keep the networks running.</p></li><li><p><strong>Networks</strong>: Service providers that seek decentralization and enhanced security.</p></li><li><p><strong>Resolvers</strong>: The entities responsible for managing slashing and arbitration processes.</p></li></ol><p>Symbiotic allows these actors to interact in ways that maximize security and efficiency, while still enabling networks to retain control over their infrastructure. By enhancing capital efficiency, Symbiotic makes it possible for assets to be utilized across multiple networks, driving decentralization at scale.</p><h3 id="h-enter-the-curators-managing-and-optimizing-shared-security" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Enter the Curators: Managing and Optimizing Shared Security</h3><p>While the above roles are integral to the Symbiotic framework, the true power of the system lies in its flexibility. This flexibility has given rise to new entities—curators—who take on a pivotal role in optimizing interactions between collateral, vaults, operators, networks, and resolvers.</p><p>Curators manage and provide transparency in the network, ensuring that the interactions between different components are both efficient and secure. Here&apos;s a look at the different forms curators can take in the Symbiotic ecosystem:</p><ol><li><p><strong>Liquid Restaking Tokens (LRTs)</strong>: These curators specialize in asset management. By acquiring large stakes and creating scoring frameworks, they help networks maintain economic security while incentivizing restakers.</p></li><li><p><strong>Operators</strong>: In addition to running infrastructure, operators can act as curators by offering best practices for redundancy and uptime. Their knowledge of both economic and technical factors helps ensure resilient networks.</p></li><li><p><strong>Risk Managers and Research Entities</strong>: Focused on assessing risks, these curators guide networks and restakers by offering informed insights, ensuring that decisions are made with a comprehensive understanding of potential risks.</p></li><li><p><strong>Liquid Staking Tokens (LSTs)</strong>: With extensive experience in managing operator sets and integrating assets into DeFi, LST curators help Symbiotic networks choose operators that meet specific needs.</p></li><li><p><strong>DAOs and Governance Systems</strong>: Decentralized governance mechanisms can also play the role of curators, dynamically managing collateral and security profiles in a transparent and decentralized way.</p></li></ol><h3 id="h-the-future-of-curation-in-symbiotic" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">The Future of Curation in Symbiotic</h3><p>As the Symbiotic ecosystem grows, so too will the role of curators. We can expect to see specialized curation platforms emerge, offering advanced tools for risk management and cross-chain security arrangements. Artificial intelligence and machine learning could play a major role in optimizing these curation processes, allowing real-time adjustments and predictive risk assessments.</p><p>We might also witness the rise of decentralized curation DAOs, where communities collectively manage large pools of assets, leveraging their expertise to maximize security and efficiency. This community-driven approach could revolutionize the way networks are managed, making the process more democratic and accessible.</p><h3 id="h-why-curators-matter" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Why Curators Matter</h3><p>Curators are key to making Symbiotic’s shared security more accessible and scalable. By optimizing the system and offering transparent processes, they enhance risk management and ensure that networks can scale without compromising on security. Curators democratize access to blockchain security, enabling previously complex processes to be applied across entire industries.</p><p>As the Symbiotic ecosystem continues to grow, curators will drive innovation, building new products and services that accelerate the adoption of shared security. Their role in shaping the future of decentralized ecosystems is just beginning, and the possibilities are vast.</p><p>If you&apos;re interested in becoming a curator or simply want to learn more about Symbiotic&apos;s approach to shared security, the community is always open. Whether you’re a network operator, risk manager, or just an enthusiast, there’s a place for you in this emerging ecosystem.</p>]]></content:encoded>
            <author>glitch-enjoyers@newsletter.paragraph.com (Glitch Enjoyers)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/c3e9db3b783967643718414ca80cd169f058a346b4a462774c2b6aa9121d07ca.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Glitch Enjoers. Node Setup 0G Labs]]></title>
            <link>https://paragraph.com/@glitch-enjoyers/glitch-enjoers-node-setup-0g-labs</link>
            <guid>mijnnasQ4ohQWJBxXIqd</guid>
            <pubDate>Wed, 10 Jul 2024 15:00:32 GMT</pubDate>
            <description><![CDATA[IntroductionGlitch Enjoers is a dedicated team of validators who have actively contributed to the 0G project by setting up nodes, participating in rigorous testing, and ensuring the stability and security of the network. This article highlights their involvement, showcasing specific examples of their work, including code snippets and configurations.Setting Up 0G NodesThe Glitch Enjoers team has meticulously followed the official guidelines to set up and maintain 0G nodes, ensuring optimal per...]]></description>
            <content:encoded><![CDATA[<h3 id="h-introduction" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Introduction</h3><p>Glitch Enjoers is a dedicated team of validators who have actively contributed to the 0G project by setting up nodes, participating in rigorous testing, and ensuring the stability and security of the network. This article highlights their involvement, showcasing specific examples of their work, including code snippets and configurations.</p><h3 id="h-setting-up-0g-nodes" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Setting Up 0G Nodes</h3><p>The Glitch Enjoers team has meticulously followed the official guidelines to set up and maintain 0G nodes, ensuring optimal performance and security.</p><h4 id="h-step-by-step-node-setup" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Step-by-Step Node Setup</h4><p>Here’s a detailed example of how the team sets up a 0G node:</p><pre data-type="codeBlock" text="# Clone the 0G repository
git clone https://github.com/0GNetwork/0G.git
cd 0G

# Install dependencies and build the project
make install

# Initialize the node with a custom name
ogd init &quot;GlitchEnjoersNode&quot;

# Download the genesis file to join the network
wget -O $HOME/.ogd/config/genesis.json &quot;https://raw.githubusercontent.com/0GNetwork/0G/main/genesis.json&quot;

# Configure persistent peers for better connectivity
PEERS=&quot;node1@10.0.0.1:26656,node2@10.0.0.2:26656&quot;
sed -i.bak -e &quot;s/^persistent_peers *=.*/persistent_peers = \&quot;$PEERS\&quot;/&quot; $HOME/.ogd/config/config.toml

# Start the node
ogd start
"><code><span class="hljs-comment"># Clone the 0G repository</span>
git <span class="hljs-built_in">clone</span> https://github.com/0GNetwork/0G.git
<span class="hljs-built_in">cd</span> 0G

<span class="hljs-comment"># Install dependencies and build the project</span>
make install

<span class="hljs-comment"># Initialize the node with a custom name</span>
ogd init <span class="hljs-string">"GlitchEnjoersNode"</span>

<span class="hljs-comment"># Download the genesis file to join the network</span>
wget -O <span class="hljs-variable">$HOME</span>/.ogd/config/genesis.json <span class="hljs-string">"https://raw.githubusercontent.com/0GNetwork/0G/main/genesis.json"</span>

<span class="hljs-comment"># Configure persistent peers for better connectivity</span>
PEERS=<span class="hljs-string">"node1@10.0.0.1:26656,node2@10.0.0.2:26656"</span>
sed -i.bak -e <span class="hljs-string">"s/^persistent_peers *=.*/persistent_peers = \"<span class="hljs-variable">$PEERS</span>\"/"</span> <span class="hljs-variable">$HOME</span>/.ogd/config/config.toml

<span class="hljs-comment"># Start the node</span>
ogd start
</code></pre><p>This setup ensures that the node is initialized correctly and connected to the network efficiently.</p><h4 id="h-using-docker-for-node-deployment" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Using Docker for Node Deployment</h4><p>To streamline the deployment process, the team uses Docker. Below is the Dockerfile used by Glitch Enjoers:</p><pre data-type="codeBlock" text="FROM golang:1.18-alpine

RUN apk add --no-cache git

WORKDIR /app

# Clone and build the application
RUN git clone https://github.com/0GNetwork/0G.git . &amp;&amp; \
    go build -o ogd ./cmd/ogd

EXPOSE 26656 26657

CMD [&quot;./ogd&quot;, &quot;start&quot;]
"><code>FROM golang:<span class="hljs-number">1.18</span><span class="hljs-operator">-</span>alpine

RUN apk add <span class="hljs-operator">-</span><span class="hljs-operator">-</span>no<span class="hljs-operator">-</span>cache git

WORKDIR <span class="hljs-operator">/</span>app

# Clone and build the application
RUN git clone https:<span class="hljs-comment">//github.com/0GNetwork/0G.git . &#x26;&#x26; \</span>
    go build <span class="hljs-operator">-</span>o ogd ./cmd<span class="hljs-operator">/</span>ogd

EXPOSE <span class="hljs-number">26656</span> <span class="hljs-number">26657</span>

CMD [<span class="hljs-string">"./ogd"</span>, <span class="hljs-string">"start"</span>]
</code></pre><p>This Dockerfile ensures that the node runs in a consistent and isolated environment, making it easier to manage and deploy across different systems.</p><h3 id="h-participation-in-testing" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Participation in Testing</h3><p>The Glitch Enjoers team has been actively involved in testing the 0G network, helping to identify and fix bugs, and ensuring the stability and security of the platform.</p><h4 id="h-automated-testing-setup" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Automated Testing Setup</h4><p>The team has implemented automated testing frameworks to ensure that every code change is thoroughly tested. Here’s an example of their CI/CD pipeline setup using GitHub Actions:</p><pre data-type="codeBlock" text="name: CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: 1.18

    - name: Install dependencies
      run: make install

    - name: Run tests
      run: make test
"><code><span class="hljs-attr">name:</span> <span class="hljs-string">CI</span>

<span class="hljs-attr">on:</span> [<span class="hljs-string">push</span>, <span class="hljs-string">pull_request</span>]

<span class="hljs-attr">jobs:</span>
  <span class="hljs-attr">build:</span>
    <span class="hljs-attr">runs-on:</span> <span class="hljs-string">ubuntu-latest</span>

    <span class="hljs-attr">steps:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Checkout</span> <span class="hljs-string">code</span>
      <span class="hljs-attr">uses:</span> <span class="hljs-string">actions/checkout@v2</span>

    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Set</span> <span class="hljs-string">up</span> <span class="hljs-string">Go</span>
      <span class="hljs-attr">uses:</span> <span class="hljs-string">actions/setup-go@v2</span>
      <span class="hljs-attr">with:</span>
        <span class="hljs-attr">go-version:</span> <span class="hljs-number">1.18</span>

    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Install</span> <span class="hljs-string">dependencies</span>
      <span class="hljs-attr">run:</span> <span class="hljs-string">make</span> <span class="hljs-string">install</span>

    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Run</span> <span class="hljs-string">tests</span>
      <span class="hljs-attr">run:</span> <span class="hljs-string">make</span> <span class="hljs-string">test</span>
</code></pre><p>This configuration ensures that all tests are run automatically on every code push, helping to catch bugs early and maintain high code quality.</p><h4 id="h-performance-testing" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Performance Testing</h4><p>To ensure the network can handle high loads, the team conducts regular performance tests. Here’s an example script used for stress testing the network:</p><pre data-type="codeBlock" text="#!/bin/bash

for i in {1..1000}
do
  ogd tx send $(ogd keys show user1 -a) $(ogd keys show user2 -a) 10token --chain-id 0gnet --keyring-backend test -y
done
"><code><span class="hljs-meta">#!/bin/bash</span>

<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> {1..1000}
<span class="hljs-keyword">do</span>
  ogd tx send $(ogd keys show user1 -a) $(ogd keys show user2 -a) 10token --chain-id 0gnet --keyring-backend <span class="hljs-built_in">test</span> -y
<span class="hljs-keyword">done</span>
</code></pre><p>This script simulates a large number of transactions to test the network’s performance under load.</p><h3 id="h-community-engagement" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Community Engagement</h3><p>In addition to their technical contributions, Glitch Enjoers actively engages with the community by providing support, writing documentation, and sharing their knowledge.</p><h4 id="h-documentation-contributions" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Documentation Contributions</h4><p>The team has contributed to the official documentation, making it easier for new developers and node operators to get started. They have written detailed guides and how-to articles that cover various aspects of the 0G network.</p><h3 id="h-conclusion" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Conclusion</h3><p>The Glitch Enjoers team plays a crucial role in the 0G project by setting up and maintaining nodes, participating in extensive testing, and contributing to the community. Their efforts ensure the network&apos;s reliability, performance, and security, making them a valuable part of the 0G ecosystem.</p><h4 id="h-usefull-links" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0"><strong>Usefull links</strong></h4><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/Glitch_Enjoyers">Twitter Glitch Enjoers</a> | <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://glitch-enjoyers.gitbook.io/glitch-enjoyers.-blockchain-validators/">Gitbook</a> | <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://keybase.io/glitch_enjoyers">Keybase</a> | <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/0G_labs">Twitter 0G</a></p>]]></content:encoded>
            <author>glitch-enjoyers@newsletter.paragraph.com (Glitch Enjoyers)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/829ac29eeb75a940cee284a35f19b3fde165f0ec527b5a5333515434e732a231.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Glitch Enjoyers. Blockchain Validators]]></title>
            <link>https://paragraph.com/@glitch-enjoyers/glitch-enjoyers-blockchain-validators</link>
            <guid>DiPWOisxYo32BuTVN2Wc</guid>
            <pubDate>Mon, 08 Jul 2024 18:38:54 GMT</pubDate>
            <description><![CDATA[Glitch Enjoyers comprises a team of dedicated blockchain professionals with deep expertise in blockchain technology, cryptography, and network management. We pride ourselves on offering secure and reliable validation services tailored to the unique needs of each project. Glitch Enjoyers is to deliver unmatched node validation services that bolster the security and reliability of blockchain networks. Recognizing that each blockchain project comes with its own set of challenges and requirements...]]></description>
            <content:encoded><![CDATA[<p>Glitch Enjoyers comprises a team of dedicated blockchain professionals with deep expertise in blockchain technology, cryptography, and network management. We pride ourselves on offering secure and reliable validation services tailored to the unique needs of each project.</p><p>Glitch Enjoyers is to deliver unmatched node validation services that bolster the security and reliability of blockchain networks. Recognizing that each blockchain project comes with its own set of challenges and requirements, we customize our services to guarantee optimal performance and security.</p><h4 id="h-why-choose-glitch-enjoyers" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Why Choose Glitch Enjoyers?</h4><p>Choosing Glitch Enjoyers means partnering with a team committed to your project&apos;s success. Here’s what sets us apart:</p><ul><li><p><strong>Expertise:</strong> Our extensive experience in blockchain technology and cryptography allows us to handle even the most complex validation tasks with precision.</p></li><li><p><strong>Reliability:</strong> We are dedicated to providing consistent, high-quality services that our clients can depend on.</p></li><li><p><strong>Security:</strong> We prioritize the security of your network, implementing the latest measures to protect against threats.</p></li><li><p><strong>Transparency:</strong> We believe in open communication and transparency, keeping our clients informed every step of the way.</p></li></ul><h4 id="h-usefull-links" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0">Usefull links</h4><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://glitch-enjoyers.gitbook.io/glitch-enjoyers.-blockchain-validators/usefull-links">https://glitch-enjoyers.gitbook.io/glitch-enjoyers.-blockchain-validators/usefull-links</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://keybase.io/glitch_enjoyers">https://keybase.io/glitch_enjoyers</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://x.com/Glitch_Enjoyers">https://x.com/Glitch_Enjoyers</a></p>]]></content:encoded>
            <author>glitch-enjoyers@newsletter.paragraph.com (Glitch Enjoyers)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/661d0203a51ea9a6c6807d325efea14a9f6c78f0c49ece66f58112501028fed6.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>