Announcing Drone | Leveling up Hive API Nodes and User Experience

Introduction
After rigorous testing and impressive performance results, I am excited to announce the initial/early release version of Drone.
This version has been running on api.deathwing.me for a little over two months without any major issues. Along the way, I've made changes to improve both performance and compatibility with older apps.
Drone has been a "pet project" for me as I learn Rust. If you are a seasoned developer, you may find opportunities to significantly improve the code. I am welcoming to all potential PRs to evolve Drone and improve performance :)
How does this affect non-technical users?
For the average user, one benefit could be faster response times on nodes that utilize Drone as opposed to Jussi, thanks to improved caching. Caching also makes it possible for nodes to have more "performance" to work with more calls.
What advantages does Drone offer over Jussi for those who are familiar?
Compared to Jussi, Drone provides a more effective caching implementation and is significantly lighter. This allows your node to perform faster and more efficiently.
On one of the api.deathwing.me nodes, for example:
Jussi: ~30% CPU usage with ~3GB RAM
Drone: ~4-8% CPU usage with ~600-750 MB RAM
The rest of this post will feature the README.md file from the repo.
Drone
Drone is an API caching layer application for the Hive blockchain. It is built using Rust with Actix Web, and its primary purpose is to cache and serve API requests for a specific set of methods. While Drone is not meant to be a Jussi replacement, it aims to improve API node performance.
Features
- Written in Rust for optimal performance and reliability.
- Actix Web for high-performance, asynchronous HTTP handling.
- LRU cache with time-based expiration to store API responses.
- Multiple API endpoints support for seamless request handling with HAF apps.
- Caching support for select Hive API methods to reduce strain on API nodes.
Cached API Methods
Due to the speed of the blockchain and ease of access, only certain API methods are available for caching by default. This is editable by the node operator if they see the need for it.
- block_api.get_block
- condenser_api.get_block
- account_history_api.get_transaction
- condenser_api.get_transaction
- condenser_api.get_ops_in_block
- condenser_api.get_block_range
- block_api.get_block_range
Links
GitHub Repo: Click here
You can also use docker to pull the latest built image of drone, ready to be used.
docker pull ghcr.io/deathwingtheboss/drone:latest
Leave Announcing Drone | Leveling up Hive API Nodes and User Experience to:
Read more #hive posts
Best Posts From Deathwing
We have not curated any of deathwing's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From Deathwing
- Hive Dev Fund Proposal - Pilot (P1)
- Witness & API Cluster Ready for HF28
- Announcing Crownrend | A Kingdom-Building Online Strategy Game!
- Global Hive Infrastructure DHF Proposal | HAF apps, image server and more
- Listening to feedback regarding HBD APR (and Posting Rewards)
- Decreasing HBD APR and Posting Rewards and Increasing the Importance of Hive Power (HP)
- Announcing Drone | Leveling up Hive API Nodes and User Experience
- Drone and api.deathwing.me Upgrades! | Global API Expansion Part 3
- I lost a friend
- api.deathwing.me in the United States! | Global API Expansion Part 2