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.
More information that we collect. This will allow us to do interesting analytics.
Caching and query aggregation. To reduce the response time and reduce the load on the database.
Infrastructure:
Configure CI/CD using sourcecraft.
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.
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!
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.
Switching to the Nuxt engine. Implementing a backend for receiving, storing, and caching GeoIP
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
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' ' '
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!
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.
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.
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:
Keplr Wallet Integration
Delegation / Undelegation / Rewards
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:
Complete transition to using ipinfo for geolocation data (currently, it’s partially implemented, which is why some nodes have incorrect locations).
Consolidated chart of node downtime (reboots) by country/provider. Other ideas might emerge during development, as happened with the delegation change chart.
Distributed Delegation (thanks for the idea @UncleLem). Automatic distribution of a large sum across nodes without exceeding the saturation limit of the proposed nodes.
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!
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