Validators Development #5
JPTR Corporation
This document offers a clear and thoughtful summary of the tickets we’ve successfully closed over the past 30 days, along with an overview of the work currently in progress. It’s designed to give you a comprehensive snapshot of our significant achievements, all presented in an easy-to-read format, with insights summarized by ChatGPT from Jira issues.
We hope this overview highlights the hard work and dedication that has gone into each task, ensuring that our development efforts are both transparent and impactful.
A payment of $40,000.00 is required to be made to JPTR, Corporation. Please ensure the payment is made in the form of USDC to the Ethereum address:
0x57d917726073D7582022897F753B034aA593220c.
Note: Before submitting the full amount, please send a minimal test transaction to verify the accuracy of the transfer. Once confirmed, proceed with the full payment.
TL;DR: Validator Development Update #5
- Validator Updates: Added $SOULKEEP delegation support, centralized SteemMonsters dependencies, fixed the check-in plugin bug, and introduced a REWARD_ACCOUNT variable for improved security and key separation.
- Validator Setup: Improved setup with new commands (destroy, rebuild_service) and Docker Compose variables for better configuration and development efficiency. ● Validator UI: Began development of a React + Tailwind UI with pages for tracking validator nodes, token balances, and account information. Added features like voting, managing nodes, and SPS insights.
- Validator Environment: Improved snapshot restoration, loaded a 12/4 snapshot into AWS, and enabled community members to sync and test their nodes with accurate balances.
- New UI Test Branch:
-- Pull latest changes (git pull origin main) and switch to new-ui branch.
--Set snapshot URL and load the local UI (http://localhost:8888). ○ Rebuild the validator service if balances fail to load (./run.sh rebuild_service validator).
Validator Updates
1 - Token Delegation Enhancements:
- Introduced a system_account_whitelist to the token delegation system, adding support for $SOULKEEP delegations. This update allows the validator system to better handle delegation scenarios that involve specific account restrictions or permissions, improving flexibility and scalability.
2 - Dependency Consolidation:
- Merged all SteemMonsters-related dependencies, such as the atom lib, into the validator repository. By centralizing these dependencies, the setup process has been greatly simplified, reducing external dependency management for contributors.
3 - Bug Fixes:
- Resolved an issue that prevented the validator check-in plugin from running. This fix ensures that validators can now reliably participate in periodic check-ins, which are critical for reward distribution and operational integrity.
4 - Key Management Improvements:
- Added a new environment variable, REWARD_ACCOUNT, to separate the keys used for LICENSE token ownership from those used for validator operations. The validate_block and validator_check_in transactions were updated to leverage this new variable, improving security and reducing operational risk for node operators.
Validator Setup
1 - Command Enhancements:
- Fixed the ./run.sh replay command to address issues with replaying the environment.
- Introduced the ./run.sh destroy command, allowing users to easily tear down their environments when needed without manual intervention.
- Added a new ./run.sh rebuild_service {service} command, enabling developers to rebuild specific services from source. This addition streamlines the development process and minimizes the need to rebuild the entire environment when working on individual components.
2 - Environment Variables:
- Integrated the following new environment variables into Docker Compose for easier setup and enhanced functionality:
■ VALIDATOR_ACCOUNT: Defines the account used for validator
operations.
■ VALIDATOR_KEY: Specifies the key required for block validation and check-in transactions.
■ REWARD_ACCOUNT: Enables separation between account ownership of LICENSE tokens and validator functionality. - Updated the validator UI to connect with local nodes by default via environment variable configurations in Docker Compose. This ensures seamless local development and testing.
Validator UI
1 - UI Framework Initiation:
- Began development of a new user interface for the validator using React and Tailwind Material, aiming to deliver a modern, responsive, and intuitive experience for node operators and community members.
2 - Implemented Features:
- Home Page:
■ Displays real-time insights, including the Top 10 validator nodes, Top 10 SPS holders, the current SPS price, and links to useful
Splinterlands-related resources. This dashboard-style overview provides users with quick access to essential metrics. - Validator Nodes Page:
■ Allows users to search for and view all validator nodes.
■ Includes functionality to vote for validators and a lookup feature for
viewing the votes cast by specific accounts. - Token Balances Page:
■ Displays token balances for SPS, SPSP, and LICENSE tokens, helping users track their assets across the ecosystem. - Account Balances Page:
■ Provides a detailed view of balances for any specific account, enhancing transparency and usability. - Manage Validator Nodes Page (In Progress):
■ Enables users to register or deregister their validator nodes, simplifying the node management process.
Validator Environment
1 - Snapshot Restoration:
- Improved the process of restoring snapshots from SteemMonsters to make it more automated and reliable. This ensures faster and more accurate data replication across environments.
2 - AWS Validator Environment Setup:
- Loaded a snapshot from December 4th into the validator environment hosted in AWS. This snapshot provides the latest state for testing and development. ○ Published configuration settings, enabling community members to run their own validator nodes using the same snapshot. This fosters broader participation in validator operations.
- Verified synchronization of balances between local nodes and AWS-hosted nodes, confirming that all data is accurately reflected in the Splinterlands UI.
Running the New Validator UI Test Branch
To test the new validator UI branch locally, follow these steps:
- Pull the latest changes:
git pull origin main - Checkout the new UI branch:
git checkout new-ui - Set the snapshot URL:
SNAPSHOT_URL=https://d33cuc2qlex36c.cloudfront.net/validator-data -latest-20241204-0.zip - Load the local UI: Open your browser and navigate to:
http://localhost:8888 - Troubleshooting Balances: If balances fail to load, rebuild the validator service with: ./run.sh rebuild_service validator