Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Submission for robruz_story node #1103

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions wave-2/submissions/robruz_story/data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"validator_address": "161.97.132.137", "discord_id": "robruz", "discord_username": "RobRuz"}
23 changes: 23 additions & 0 deletions wave-2/submissions/robruz_story/submission-bonus-task-1.md
Original file line number Diff line number Diff line change
@@ -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.


38 changes: 38 additions & 0 deletions wave-2/submissions/robruz_story/submission-bonus-task-2.md
Original file line number Diff line number Diff line change
@@ -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.

28 changes: 28 additions & 0 deletions wave-2/submissions/robruz_story/submission-bonus-task-3.md
Original file line number Diff line number Diff line change
@@ -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

70 changes: 70 additions & 0 deletions wave-2/submissions/robruz_story/submission-general-task-1.md
Original file line number Diff line number Diff line change
@@ -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 <my_moniker>


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.
54 changes: 54 additions & 0 deletions wave-2/submissions/robruz_story/submission-general-task-2.md
Original file line number Diff line number Diff line change
@@ -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.
38 changes: 38 additions & 0 deletions wave-2/submissions/robruz_story/submission-general-task-3.md
Original file line number Diff line number Diff line change
@@ -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://<my_server_ip>: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.

66 changes: 66 additions & 0 deletions wave-2/submissions/robruz_story/submission-general-task-4.md
Original file line number Diff line number Diff line change
@@ -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.