Announcing Drone | Leveling up Hive API Nodes and User Experience

in HiveDevs10 months ago

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

Sort:  

We needed an improvement for the nodes, lately they have been failing quite a lot. Any idea if this could be implemented for other nodes as well?.

Depends on the node operator, but Jussi is not usually the reason why a node would "fail".

https://leofinance.io/threads/view/idksamad78699/re-leothreads-2fuskhypp
https://leofinance.io/threads/view/alokkumar121/re-leothreads-2u6myjccd
https://leofinance.io/threads/view/seckorama/re-leothreads-2ust9dtt1
The rewards earned on this comment will go directly to the people ( idksamad78699, alokkumar121, seckorama ) sharing the post on LeoThreads,LikeTu,dBuzz.

PIZZA!
The Hive.Pizza team manually curated this post.

Join us in Discord!

Great Job!! Having a better performing nodes will be increasingly important.
Thank you!!

Congratulations @deathwing! Your post has been a top performer on the Hive blockchain and you have been rewarded with this rare badge

Post with the highest payout of the day.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

LEO Power Up Day - May 15, 2023
The Hive Gamification Proposal
Support the HiveBuzz project. Vote for our proposal!

Will Drone work with existing Hive clients like hivejs and dhive? Or is some kind of custom client required?

My apps themselves are written in either hive-js or dhive, and I had no issues with Drone at all. It was simply plug-and-play.

In the earlier versions, Drone didn't play well with beem since beem hasn't been updated in the last few years, but I do believe that I fixed that issue now.

There seems to be 1 more issue with beem that I'll send the info to you on discord about.

Great! I'll start playing around with it ASAP.


Congratulations, @deathwing Your Post Got 100% Boost.
@theguruasia Burnt 20.69 UPME & We Followed That Lead.

upme.link

Contact Us : CORE / VAULT Token Discord Channel

Absolutely incredible! 😊❤ quality with precision is amazing.

Excellent project!
Cheers and success.

Nice work, happy to hear about this development keep it up

So are we able to implement this ourselves, I dont see any screenshots except for response

I can't understand what you're trying to say? If you're talking about whether or not you can use Drone for your node, yes, you certainly can.

I Wanted to know if you could swap drone. And then afterward drop it or remove it whole.

Congratulations @deathwing! Your post has been a top performer on the Hive blockchain and you have been rewarded with this rare badge

Post with the highest payout of the week.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

The Hive Gamification Proposal
Support the HiveBuzz project. Vote for our proposal!