Nym Grant Proposal (Nymesis)

Backend work preview from April 19, 2025

The backend is under maintaining…

Database:

  1. Updating the database schema based on usage experience. This will increase the performance of analytical queries and optimize the size of data storage on disk.
  2. More information that we collect. This will allow us to do interesting analytics.
  3. Caching and query aggregation. To reduce the response time and reduce the load on the database.

Infrastructure:

  1. Configure CI/CD using sourcecraft.
  2. Increase the fault tolerance of the data collection system by transferring fetcher from VPS to the cloud with repeated startup attempts.

In general:
We are switching to using the blockchain API instead of the nymapi. This will allow us to increase the fault tolerance of the system and expand the amount of information that we can analyze.
As you may have noticed, we are actively updating the main go-nym library, which we use in the project to collect data.

4 Likes

DRAFT3

  1. migration to a new chart library
  2. updated interface
  3. node comparison function


added 24 hour performance (every hour)



possibility to add up to 10 nodes for comparison of profitability and other re-metrics (other re-metrics under development)


redesigned node card (improvements in progress)


selected nodes are added to the address bar

3 Likes

Backend update from May 02, 2025

Fetcher Component:

  1. [v2] Successfully moved to production cloud with periodic cron job (gathering every 5 mins).
  2. [v2] Successfully switched to blockchain api instead of nym-api (except node annotation).
  3. [v3] Ready for v3 api (expanded api with more analytics)

Analyzer Component:

  1. [v3] Refactoring started, preparing for v3 api

Database:

  1. [v3] Almost done work with database schema. Enabled 9 materialized views for speeding up the system.

P.S. We’ve recruited a new backend player (GoLang), who will take several services which we planned.

3 Likes

hot push: WALLETS ADDED

1 Like

:money_with_wings: All April grant & achievement rewards for April have been sent and your contribution made it to the list! See the transactions here.

3 Likes

Backend update from May 17, 2025

General:

  1. We have been migrated successfully to v3 database scheme, which improved data compressing from 1 GiB (compressed) to 70 MiB (compressed++).
  2. Updated database hardware (was 6 CPU, 6GB RAM; became 16 CPU, 32GB RAM).
  3. Increased API prepared instances to reduce frontend response time.
  4. All requests have been cached for all showed data.
  5. Especially for @merve: added Delegation Program flag for a quickly find DP attendees.

Tests and CI/CD:

  1. Written integration tests on Postman (Passed 20528, Failed 0, Skipped 0).
  2. Fully configured CI/CD pipeline for the entire environment: dev, stage, prod.

Nuances:

  1. We have reconfigured the way we track node reboots. Thus, the reboot history will start from scratch.
3 Likes

Thank you guys! Good job!

3 Likes

Hey @craftdome @bumpmeup,

Really solid explorer so far. It shows all the hard work you’ve put in (autonomously!). The NSL Council likes the direction you’re taking this in. Having detailed, transparent analytics like these are already proving to be a huge win for node operators and delegators alike.

A couple of things we’d need to address before moving forward:

  • Open source will be a hard requirement for all future Build with Nym projects. So the tool will need to be published under an open license.
  • for all projects with a larger budget such as this one, going forward we will transfer payment in a vesting form. This is evenly distribute, and dampen the market impact of any resulting pressure on the NYM token.

Please let me know if you are OK with the above and let’s move forward!

1 Like

Agreed. We will prepare Github publish.

Not fully sure, what is a vesting form?

Due to certain events, there is now a need for an intermediate backend. Therefore, I am transferring the frontend engine from VUE to NUXT.

After the update, version v4 of the site will appear, which will most likely be on a new domain and new hosting. This is because WebSockets and other integrations such as ipinfo will be implemented, and Vercel does not provide support for WebSockets. I also plan to implement new sorting options for convenient selection of connection gateways. I think there will be some other features as well.

Version v3 will remain in its current location.

The source code will be published on GitHub after the final implementation of all new features.

The new version will feature Heatmap distribution by processed and transmitted packets. You can visually determine the concentration of traffic. The data on packages is up to date and is updated every five minutes.


3 Likes

some news

what is implemented at the moment:

  1. Switching to the Nuxt engine. Implementing a backend for receiving, storing, and caching GeoIP
  2. Node filtering has been expanded. The ability to select by individual parameters (version, country) and combine it with the search bar. I’ll probably work on it some more
  3. The main page is now without pagination, with a single list. Rendering occurs dynamically when scrolling
  4. The main map displays the node and the heat map of the traffic. Dynamic rendering on the map after filtering

  5. The interface has been slightly redesigned. I’ll probably work on it some more
  6. Charts extended to six months. A single slider for all charts.

What’s left to do:

  1. Main Summary charts
  2. Wallet balances and transactions
  3. I think to integrate Wallet transactions
    I need to fix a few technical errors.
  4. Other small things and code refinement
2 Likes

An update has occurred.
I think it’s visually improved. Many new features have also been added. Improved filtering. Wallet information has been added. However, due to the specifics of storing transactions by validators, I cannot guarantee 100% of transactions. In the future, I hope I will fix it. I have a couple of ideas. Slowly I will add new features

would also like to share a super mini version of nymesis. that’s what she looks like:


this is a regular bash-script that you can run with some disguise. it shows the number of delegates and the node being in the active set (green) if the node uptime in the last hour is below 75% (red). make sure you have jq installed and the script is executable

for example, if you use like me i3 + polybar just set your nodes and add it to the polybar configuration file

  • bash script:
#!/bin/bash
sleep 30
data=$(curl -s https://nymesis.vercel.app/api/nodes)
output=$(echo "$data" | jq -r '
  .[] | select(.node_id == 1796 or .node_id == 1886 or .node_id == 2474) | 
  {
    node_id: .node_id,
    in_rewarded_set: .in_rewarded_set,
    last_performance: .performance_24h[-1],
    delegations_count: (.delegations | length)
  } |
  if .in_rewarded_set then
    "%{F#00AA00}\(.node_id)%{F-}:\(.delegations_count)"
  elif .last_performance < 0.75 then
    "%{F#AA0000}\(.node_id)%{F-}:\(.delegations_count)"
  else
    "%{F#C5C8C6}\(.node_id)%{F-}:\(.delegations_count)"
  end
')
echo "$output" | tr '\n' ' '
  • polybar module:
; #############################################################
; NYX NODE
; #############################################################
[module/nyx-status]
type = custom/script
exec = ~/.config/polybar/scripts/nyx_nodes.sh
interval = 600
format = <label>
label = %output%
3 Likes

This is amazing work @bumpmeup, really happy to see such excellent continued work on the Nymesis project! If you are thinking about other major developments in the future, we can lay out another set of milestones and get you a grant - let me know what your Nymesis vision is. And thank you for this amazing work!

3 Likes

Given the recent events and the shifting saturation point, I thought it would be interesting to track the changes in the total stake and how tokens are distributed among nodes. So today I put everything else on hold and added another chart. You can also see the correlation when the saturation level is significantly above 250k.

1 Like

At @mku1tra’s request, I added the SATURATION column. You may find it useful as well. If you don’t see it, click the COLUMNS button at the bottom. You can also hide columns you don’t need.

2 Likes

Further Development of NYNESIS

Below, I have outlined the near-term and long-term plans. The implementation might not follow the exact order listed, but as always, when new features are added, I will report on their implementation here, for you. I cannot give exact timelines, but it’s important for you to know that as soon as any module is ready, it will immediately be available to everyone.

First of all, I’d like to say that work on errors is ongoing. If I can improve or fix something, I do it. It’s not always noticeable, but it’s happening. So, here is what I would like to implement.

Primary Objectives:
  1. Keplr Wallet Integration
  2. Delegation / Undelegation / Rewards
  3. Node Filter for delegation node selection based on specified parameters (expanding filtering capabilities)
Secondary Objective:

Feedback from the node operator to delegators. The ability to set a status for a node in the form of an icon and a short message (for example).

  • Node under maintenance
  • Node migrating to a different host
  • Request to distribute delegations from one node to others
  • And so on…
Additional Objectives:
  1. Complete transition to using ipinfo for geolocation data (currently, it’s partially implemented, which is why some nodes have incorrect locations).
  2. Consolidated chart of node downtime (reboots) by country/provider. Other ideas might emerge during development, as happened with the delegation change chart.
  3. Distributed Delegation (thanks for the idea @UncleLem). Automatic distribution of a large sum across nodes without exceeding the saturation limit of the proposed nodes.
  4. Telegram bot for critical node statuses and alerts.
  • Stopped
  • Rebooting
  • Delegator joining / leaving
  • And so on…

I am very happy that what was planned at the very beginning of the year is coming to fruition. The product is being used, it’s needed, it works, and it’s useful. That is the most important thing for me. Not everything goes perfectly, but I am trying to do everything right.

I would like to thank everyone who has sent me feedback, bug reports, and suggestions. You all know your names, I won’t list them, thank you. Thanks to the community, the NYM team, and everyone who cares.
Guys, thank you so much!

@salazar @sudonym

3 Likes

Important message!

I’ve exhausted all my free limits on Vercel.
I can’t pay for my Vercel account because it won’t accept my bank card.
I will try to temporarily create a new account and transfer the project to it. I’ll try to get this done over the weekend. I’ll then figure out what to do about this. Unfortunately, moving away from this platform will be a bit problematic since I’m tied to their Turso database, but if a solution is found, I can migrate the database directly to Turso.

The situation is unpleasant, but I’m working on it.

so… I had to create a new Vercel account last-minute to avert a crisis, but this is only a temporary solution either way. I’ll be looking for options to pay for the subscription, as Vercel doesn’t accept payment cards from my country



On a positive note, the development of the delegation management feature is already in full swing.

Progress:

  • Interface: ~80% complete
  • Logic: ~65% complete

The complexity lies in testing the transaction processes. I have to wait for each epoch to confirm that a transaction was successful.

2 Likes