From 584ec958c205f6facd8a8977c0320deb8a87d475 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 13 Oct 2024 00:12:22 +0000 Subject: [PATCH 1/5] Add information file for nodesforall --- wave-2/submissions/nodesforall/data.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 wave-2/submissions/nodesforall/data.json diff --git a/wave-2/submissions/nodesforall/data.json b/wave-2/submissions/nodesforall/data.json new file mode 100644 index 000000000..a1e8b3f67 --- /dev/null +++ b/wave-2/submissions/nodesforall/data.json @@ -0,0 +1 @@ +{"validator_address": "storyvaloper1rtagk36fkxsa9ntdt6fzq5v2cnnmjhw45zrq96", "discord_id": "1200215365704220783", "discord_username": "0xnfa"} \ No newline at end of file From 3237341ab67ae0aeda0a0448aa5a591fe8ed71dc Mon Sep 17 00:00:00 2001 From: nodesforall Date: Sun, 13 Oct 2024 03:25:55 +0200 Subject: [PATCH 2/5] Add submission MD files for nodesforall --- .../nodesforall/submission-bonus-task-1.md | 23 ++++++ .../nodesforall/submission-bonus-task-2.md | 0 .../nodesforall/submission-bonus-task-3.md | 0 .../nodesforall/submission-general-task-1.md | 70 +++++++++++++++++++ .../nodesforall/submission-general-task-2.md | 54 ++++++++++++++ .../nodesforall/submission-general-task-3.md | 38 ++++++++++ .../nodesforall/submission-general-task-4.md | 66 +++++++++++++++++ 7 files changed, 251 insertions(+) create mode 100644 wave-2/submissions/nodesforall/submission-bonus-task-1.md create mode 100644 wave-2/submissions/nodesforall/submission-bonus-task-2.md create mode 100644 wave-2/submissions/nodesforall/submission-bonus-task-3.md create mode 100644 wave-2/submissions/nodesforall/submission-general-task-1.md create mode 100644 wave-2/submissions/nodesforall/submission-general-task-2.md create mode 100644 wave-2/submissions/nodesforall/submission-general-task-3.md create mode 100644 wave-2/submissions/nodesforall/submission-general-task-4.md diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-1.md b/wave-2/submissions/nodesforall/submission-bonus-task-1.md new file mode 100644 index 000000000..2de1996b1 --- /dev/null +++ b/wave-2/submissions/nodesforall/submission-bonus-task-1.md @@ -0,0 +1,23 @@ +# Bonus Task 1: Edit Validator Description on testnet.storyscan.app + +I edited the description of my validator on the Story Protocol explorer (testnet.storyscan.app). + +## Steps Taken: + +1. I accessed the Story Protocol explorer at https://testnet.storyscan.app/ + +2. I searched for my validator using my validator address. + +3. I clicked on the "Edit" button next to my validator's information. + +4. In the edit form, I updated the following information: + - Moniker: nodesforall + - Details: I love story protocol + +5. I confirmed the changes and submitted the updated information. + +6. I verified that the changes were reflected on the explorer by revisiting my validator's page. + +This task allowed me to personalize my validator's information on the Story Protocol explorer, making it more identifiable and showcasing my enthusiasm for the project. + + diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-2.md b/wave-2/submissions/nodesforall/submission-bonus-task-2.md new file mode 100644 index 000000000..e69de29bb diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-3.md b/wave-2/submissions/nodesforall/submission-bonus-task-3.md new file mode 100644 index 000000000..e69de29bb diff --git a/wave-2/submissions/nodesforall/submission-general-task-1.md b/wave-2/submissions/nodesforall/submission-general-task-1.md new file mode 100644 index 000000000..aa0db3ac5 --- /dev/null +++ b/wave-2/submissions/nodesforall/submission-general-task-1.md @@ -0,0 +1,70 @@ +# Task 1: Automatic Installer for the Story Node + +## System Preparation + +I updated the system packages and installed the necessary dependencies: + +``` +sudo apt install git ansible -y + +``` +I verified that Ansible was installed and was version 2.15 or higher: + +``` +ansible --version +``` + + +## Project Download + +I cloned the updated project repository: + +``` +git clone https://github.com/nodemasterpro/deploy-node-story.git +cd deploy-node-story +``` + + +## Using the Story Node Manager + +I used the `story_node_manager.sh` script to install and manage the Story node: + +### Installing a New Story Node + + +./story_node_manager.sh install + + +This command performed the following tasks: +- Installed the Story Protocol node +- Configured the node with my specified moniker +- Downloaded and imported the latest snapshot for faster synchronization + +The installation process took approximately 45 minutes due to the snapshot download and import. + +### Starting Node Services and Viewing Logs + +After installation, I started the node services: + +``` +./story_node_manager.sh start +``` + +I viewed the logs to ensure everything was running smoothly: + +``` + +./story_node_manager.sh logs-consensus + +./story_node_manager.sh logs-geth +``` + +### Checking Service Status + +I ensured that the services were running correctly: + +``` +./story_node_manager.sh status +``` + +The automatic installer successfully set up my Story node, making the process straightforward and efficient. diff --git a/wave-2/submissions/nodesforall/submission-general-task-2.md b/wave-2/submissions/nodesforall/submission-general-task-2.md new file mode 100644 index 000000000..0632a63a4 --- /dev/null +++ b/wave-2/submissions/nodesforall/submission-general-task-2.md @@ -0,0 +1,54 @@ +# Task 2: Providing Snapshot Download and Import Service + +I used the `snapshot_manager.sh` script to download and import snapshots of the Story node, which significantly reduced sync time compared to starting from scratch. + +## Using the Snapshot Manager + +### Downloading a Snapshot + +I downloaded a pruned snapshot using: + +``` +./snapshot_manager.sh download pruned +``` + +For a complete archive snapshot, I used: + +``` +./snapshot_manager.sh download archive +``` + +### Importing a Snapshot + +After downloading, I imported the snapshot to my node: + +For a pruned snapshot: +``` +./snapshot_manager.sh import pruned +``` + +For an archive snapshot: +``` +./snapshot_manager.sh import archive +``` + +These commands performed the following: +- Stopped the Story services +- Imported the downloaded snapshot +- Restarted the services + +The snapshot functionality allowed my node to catch up with the network quickly and efficiently. This is particularly useful for new node operators or those who need to resync their nodes after a long period of inactivity. + +## Technical Details + +The snapshot download and import process involves several key steps: + +1. Backing up the `priv_validator_state.json` file to preserve important validator state information. + +2. Removing old data to prepare for the new snapshot import. + +3. Extracting the downloaded Story and Geth snapshots to their respective directories. + +4. Restoring the backed-up `priv_validator_state.json` file to maintain validator continuity. + +This snapshot management feature greatly simplifies the process of deploying and maintaining Story nodes, allowing node operators to save considerable time during initial setup or resynchronization. diff --git a/wave-2/submissions/nodesforall/submission-general-task-3.md b/wave-2/submissions/nodesforall/submission-general-task-3.md new file mode 100644 index 000000000..7e064bdc6 --- /dev/null +++ b/wave-2/submissions/nodesforall/submission-general-task-3.md @@ -0,0 +1,38 @@ +# Task 3: Providing a Grafana Dashboard + +I set up a Grafana dashboard to monitor my node's performance: + +``` +ansible-playbook install_grafana_prometheus.yml +``` + + +This script performed the following: +- Installed Grafana and Prometheus +- Activated metrics collection on the story-consensus node +- Configured a Grafana dashboard with key metrics + +## Accessing the Grafana Dashboard + +I accessed the Grafana dashboard via my server's IP address on port 3000: + +``` +http://:3000 +``` +Login Credentials: +- Username: admin +- Password: admin (changed upon first login) + + +## Important Metrics Monitored + +The dashboard includes the following crucial metrics: + +1. Block Height: Confirms my node is properly syncing with the network. +2. Number of Peers (num peers): Indicates network connectivity and stability. +3. Memory Usage (go_memstats_heap_alloc): Helps ensure the node isn't consuming excessive memory. +4. Missed Blocks: Critical for maintaining validator performance and reputation. +5. CPU Usage: Helps identify performance bottlenecks or resource constraints. + +These metrics provide insights into my node's health and performance, allowing me to take proactive measures if any issues arise. + diff --git a/wave-2/submissions/nodesforall/submission-general-task-4.md b/wave-2/submissions/nodesforall/submission-general-task-4.md new file mode 100644 index 000000000..3d8a01089 --- /dev/null +++ b/wave-2/submissions/nodesforall/submission-general-task-4.md @@ -0,0 +1,66 @@ +# Task 4: Useful Utilities for Validators + +I used the `validator_utils.sh` script for essential node management tasks. + +## Backing Up and Restoring Validator Keys + +### Backing Up Keys + +I backed up my validator keys using: + +``` +./validator_utils.sh backup-keys +``` + + +This command backed up: +- EVM Private Key: Located at /root/.story/story/config/private_key.txt +- Tendermint Validator Key: Located at /root/.story/story/config/priv_validator_key.json + +The backup was saved at: `/root/backup-keys-story/story_keys_backup.tar.gz` + +### Restoring Keys + +To restore keys (if needed): + +``` +./validator_utils.sh restore_keys +``` + + +## Checking Node Synchronization Status + +I checked my node's current block height: + +``` +./validator_utils.sh sync +``` + +## Viewing Validator Information + +I got detailed information about my validator: + +``` +./validator_utils.sh info +``` + +This command provided: +- Node ID +- Moniker +- Network +- Catching Up Status + +## Funding and Registering the Validator Node + +1. I set up my MetaMask wallet using the private key from `/root/.story/story/config/private_key.txt`. +2. I added the Story testnet network to MetaMask via Chainlist. +3. I obtained testnet tokens from the Story Faucet. +4. I registered my node as a validator: + +``` +./story_node_manager.sh register +``` + +5. I verified my validator status on the Story Explorer. + +These utilities greatly simplified the process of managing and monitoring my Story validator node. From 67534dba8f81a2facdc1c967d518daba2060a2f1 Mon Sep 17 00:00:00 2001 From: nodesforall Date: Sun, 13 Oct 2024 22:41:35 +0200 Subject: [PATCH 3/5] Add submission for Bonus Task 2: Article about Story Project --- .../nodesforall/submission-bonus-task-2.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-2.md b/wave-2/submissions/nodesforall/submission-bonus-task-2.md index e69de29bb..6b3400d98 100644 --- a/wave-2/submissions/nodesforall/submission-bonus-task-2.md +++ b/wave-2/submissions/nodesforall/submission-bonus-task-2.md @@ -0,0 +1,38 @@ +# Bonus Task 2: Article about Story Project + +I wrote an informative article about the Story project, focusing on the Story Validators Race Wave-2 Challenge and the process of setting up and managing a Story Protocol validator node. + +## Article Details + +- Platform: Medium +- Title: "Advancing Your Story Protocol Validator Node: Meeting the Story Validators Race Wave-2 Challenge" +- Link: https://medium.com/@nodesforall/advancing-your-story-protocol-validator-node-meeting-the-story-validators-race-wave-2-challenge-d550e988b6fa + +## Article Content Overview + +The article covers the following key aspects: + +1. Introduction to Story Protocol and its role in decentralizing IP management +2. Overview of the Story Validators Race Wave-2 Challenge +3. Detailed guide on setting up a Story validator node, including: + - System requirements and preparation + - Installation process using the automatic installer + - Node management and monitoring + - Completing mandatory and optional tasks for the challenge +4. Technical explanations of Story Protocol features, such as: + - Snapshot management for quick node synchronization + - Grafana dashboard setup for performance monitoring + - Validator utilities for key management and node information +5. Step-by-step instructions for participating in the Story Validators Race, including creating and submitting required files + +## Article Impact + +This comprehensive guide serves multiple purposes: + +1. Educates readers about the Story Protocol and its innovative approach to IP management +2. Provides a detailed, technical walkthrough for setting up and managing a Story validator node +3. Encourages participation in the Story Validators Race Wave-2 Challenge +4. Contributes to the growth and robustness of the Story Protocol network by helping new validators join + +By writing and publishing this article, I've contributed to the Story Protocol community by sharing knowledge and encouraging wider participation in the network's development and governance. + From 535c6dbe96dc57b611fc1ff33ae6c10470abd0d6 Mon Sep 17 00:00:00 2001 From: nodesforall Date: Tue, 15 Oct 2024 01:54:23 +0200 Subject: [PATCH 4/5] Add submission for Bonus Task 3: Video guide for Story Protocol node setup --- .../nodesforall/submission-bonus-task-3.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-3.md b/wave-2/submissions/nodesforall/submission-bonus-task-3.md index e69de29bb..318416329 100644 --- a/wave-2/submissions/nodesforall/submission-bonus-task-3.md +++ b/wave-2/submissions/nodesforall/submission-bonus-task-3.md @@ -0,0 +1,28 @@ +# Bonus Task 3: Video about Story Project + +I created a comprehensive video guide demonstrating the installation and setup process of a Story Protocol validator node, based on my detailed written guide. + +## Video Details + +- Platform: YouTube +- Title: "Story Protocol Validator Node Setup Guide" +- Link: https://youtu.be/JQAyTb-_4No +- Duration: Approximately 27 minutes + +## Video Content Overview + +The video covers the following key aspects: + +1. Introduction to Story Protocol and the Story Validators Race Wave-2 Challenge +2. System requirements and preparation for hosting a Story node +3. Step-by-step installation process using the automatic installer script +4. Detailed explanation of node management commands and utilities +5. Walkthrough of mandatory tasks for the challenge: + - Setting up the automatic installer + - Implementing snapshot download and import service + - Configuring Grafana dashboard for node monitoring + - Using validator utilities for key management and node information +6. Demonstration of optional tasks: + - Editing validator description on the Story Protocol explorer + - Creating and submitting required files for the challenge + From 201acaa2791117ddcc4cb7e917e03c5fcb7df852 Mon Sep 17 00:00:00 2001 From: nodesforall Date: Fri, 25 Oct 2024 19:08:10 +0200 Subject: [PATCH 5/5] Renamed submission directory to correct GitHub username --- wave-2/submissions/{nodesforall => nodemasterpro}/data.json | 0 .../{nodesforall => nodemasterpro}/submission-bonus-task-1.md | 0 .../{nodesforall => nodemasterpro}/submission-bonus-task-2.md | 0 .../{nodesforall => nodemasterpro}/submission-bonus-task-3.md | 0 .../{nodesforall => nodemasterpro}/submission-general-task-1.md | 0 .../{nodesforall => nodemasterpro}/submission-general-task-2.md | 0 .../{nodesforall => nodemasterpro}/submission-general-task-3.md | 0 .../{nodesforall => nodemasterpro}/submission-general-task-4.md | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename wave-2/submissions/{nodesforall => nodemasterpro}/data.json (100%) rename wave-2/submissions/{nodesforall => nodemasterpro}/submission-bonus-task-1.md (100%) rename wave-2/submissions/{nodesforall => nodemasterpro}/submission-bonus-task-2.md (100%) rename wave-2/submissions/{nodesforall => nodemasterpro}/submission-bonus-task-3.md (100%) rename wave-2/submissions/{nodesforall => nodemasterpro}/submission-general-task-1.md (100%) rename wave-2/submissions/{nodesforall => nodemasterpro}/submission-general-task-2.md (100%) rename wave-2/submissions/{nodesforall => nodemasterpro}/submission-general-task-3.md (100%) rename wave-2/submissions/{nodesforall => nodemasterpro}/submission-general-task-4.md (100%) diff --git a/wave-2/submissions/nodesforall/data.json b/wave-2/submissions/nodemasterpro/data.json similarity index 100% rename from wave-2/submissions/nodesforall/data.json rename to wave-2/submissions/nodemasterpro/data.json diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-1.md b/wave-2/submissions/nodemasterpro/submission-bonus-task-1.md similarity index 100% rename from wave-2/submissions/nodesforall/submission-bonus-task-1.md rename to wave-2/submissions/nodemasterpro/submission-bonus-task-1.md diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-2.md b/wave-2/submissions/nodemasterpro/submission-bonus-task-2.md similarity index 100% rename from wave-2/submissions/nodesforall/submission-bonus-task-2.md rename to wave-2/submissions/nodemasterpro/submission-bonus-task-2.md diff --git a/wave-2/submissions/nodesforall/submission-bonus-task-3.md b/wave-2/submissions/nodemasterpro/submission-bonus-task-3.md similarity index 100% rename from wave-2/submissions/nodesforall/submission-bonus-task-3.md rename to wave-2/submissions/nodemasterpro/submission-bonus-task-3.md diff --git a/wave-2/submissions/nodesforall/submission-general-task-1.md b/wave-2/submissions/nodemasterpro/submission-general-task-1.md similarity index 100% rename from wave-2/submissions/nodesforall/submission-general-task-1.md rename to wave-2/submissions/nodemasterpro/submission-general-task-1.md diff --git a/wave-2/submissions/nodesforall/submission-general-task-2.md b/wave-2/submissions/nodemasterpro/submission-general-task-2.md similarity index 100% rename from wave-2/submissions/nodesforall/submission-general-task-2.md rename to wave-2/submissions/nodemasterpro/submission-general-task-2.md diff --git a/wave-2/submissions/nodesforall/submission-general-task-3.md b/wave-2/submissions/nodemasterpro/submission-general-task-3.md similarity index 100% rename from wave-2/submissions/nodesforall/submission-general-task-3.md rename to wave-2/submissions/nodemasterpro/submission-general-task-3.md diff --git a/wave-2/submissions/nodesforall/submission-general-task-4.md b/wave-2/submissions/nodemasterpro/submission-general-task-4.md similarity index 100% rename from wave-2/submissions/nodesforall/submission-general-task-4.md rename to wave-2/submissions/nodemasterpro/submission-general-task-4.md