Global Hive Infrastructure DHF Proposal | HAF apps, image server and more

in Hive Governance7 months ago (edited)

image.png

Hi everyone,

This is @deathwing. Many of you may remember my proposal from last year, where I sought funding for a global API node infrastructure. Thanks to the tremendous support I received, the initiative has been a massive success!

You may have noticed one peculiar difference between this post's subject and last years, namely I have changed the "Global API Node" to "Global Hive Infrastructure" -- more info below :)

A Quick Recap of Last Year

The infrastructure has grown exponentially, reaching more users and regions than I initially anticipated. Thanks to your support, api.deathwing.me has been able to serve over 180k (up 38%) unique users, sharing over 6TB worth of data in the last month! While the unique user count has increased, thanks to Drone (a new API middleware written by me) and Cloudflare, the amount of data being transferred has actually gone down (I believe rate limitations also have an effect on bad users).

The New Challenge: Image Server

As you may know, most of us rely on hive.blog, belonging to @blocktrades' infrastructure, while we are uploading images. Since the majority of users are using the same image server, any sort of technical problems (or outside factors) sometimes results in almost all images throughout Hive being unavailable and/or returning errors.

So far, not a lot of people have invested in a potential image server. The reason is actually quite simple - the cost. After reviewing the data at hand, an image server capable of redundancy (with several disks failing and data still being retained without a problem) locally as well as backed up (replicated data) would cost about $10,000 -- ten thousand USD.

Actually, it is relatively cheap enough to get the server itself, costing at about $3000, however, the real cost stems from the disks. With spares in mind, it would be around $7000. Of course there are other misc costs. Taxes, setup costs and necessary hardware such as cables etc.

On top of the hardware itself, there are ongoing costs for significant bandwidth usage as well as back up, drive replacement and other factors... the costs add up. Nevertheless, increasing the overall decentralization and adding onto the sense of security that the images uploaded are kept safe and secure and available for a very long time, in my opinion, is worth it.

That sounds great but, how does it work?

When an author uploads any picture on any Hive frontend, it gets a signature and is uploaded to the image server. Most of the time, this is hive.blog. I have spoken with @asgarth (@peakd) about the potential to introduce a way to choose an image server. The reasons to do so may differ, be it faster upload/download, diversity in the location of online assets for better availability, or accessible redundancy in the case authors are unable to utilize a specific image server at a given time.

In the long term, I would love to have a unified platform. This would be a high availability environment, the images will be uploaded to all accessible image servers and load balanced in accordance with the resource usage, latency to the end user and capacity. If this is achieved, all images uploaded on any frontend would be decentralized, yet almost always accessible with lots of servers. I am currently in the process of drafting such a system, but it is too early to promise anything.

Evolving Nature of HAF -- A Playground and Easily Accessible Environment

HAF has been improving over time and more apps are slowly being developed. As HAF matures, it will only continue to be more and more popular. To accomodate this, as I mentioned in various places before, I am a supporter of HAF and HAF apps in general.

I intend to set up an environment where most "needed" HAF apps are publicly available throughout my infrastructure. Developers and end-users would be able to experiment and get some starting knowledge before having to commit any resources they may or may not have.

The current apps planned for this are:

Some of these apps are still a very much a work-in-progress, so it may take some time until they are mature enough to be publicly hosted.

With this idea in mind, I am also planning to host "large files" that are necessary to get started with hosting a Hive node such as a publicly accessible block_log, regular snapshots for lite nodes and potentially entire HAF DB dumps depending on the situation.

The Renewal Proposal

Continued Support for API Node Infrastructure: Given the increased traffic per user and increased use case scenarios, the proposal will help fund necessary expenditure ranging from regular maintenance, disk failures, ongoing datacenter costs and ongoing miscellanous costs such as load balancers, GeoDNS and further upgrades and additions.

Incorporation of the Image Server: With a cost of about $10k for a single server, the increased daily rate of the proposal will help funding this expenditure while accounting for potential disk failures and so on. Achieving this proposal will help with the decentralization and the stability of a major social aspect of Hive, images.

Budget Request

For this ambitious undertaking, I'm requesting 150 HBD/day from the DHF for the duration of one year, starting on October 31, 2023 and ending on October 31, 2024. The increase from last year's proposal is mainly to account for the addition of the Image Server and its associated costs such as increased colocation costs, ever-increasing power/electricity costs with more additions to racks and most importantly, the bandwidth cost.

Your Feedback Matters

Your support and feedback over the past year have been invaluable. As always, if you have questions, concerns, or suggestions regarding this renewal proposal, please share. Let's continue making Hive a robust, and user-friendly platform!

Vote for the proposal now!

To vote through PeakD: Click here
To vote through Ecency: Click here
To vote through Hive.blog: Click here

Sort:  

It seems very centralized still? Isn't there a better way in the web3 world to host images in some type of blockchain way CDN type network?

I'd rather see progress there then booting up another server to deal with images.

Also shouldn't we be able to strap on webp or something of the sorts to really reduce all image sizes rolling forward?

I had a chat with vaultec from SPK to see if we could solve that problem, but the inherent problem of having the storage space necessary for all the data is still there, while we can compress and optimize as much as we want, in the end image hosting is a slippery slope when it comes to what you can do to reduce file sizes.

One major problem with P2P/Blockchain-esque hosting is that, while you can potentially "improve" the space that someplace has, someone, somewhere would still has to have the full copy as I mentioned.

If we have 100 TB of images, around the P2P network, lets say 2 servers have >100TB space, they would be hosting everything for other peers to join the network and download, this would certainly reduce latency and improve reliability of those files, but any file they (the new peers) couldn't fit would be at risk.

It would be interesting to see if some of this money can be put into SPK network each month to incentivise many ppl all around the world to use their spare hard drive space to back up images for hive dapps and help them earn ownership in SPK. The network was built (funded by hive) specifically to incentivise the infrastructure operators on hive.

Looking forwards to seeing you in the meetings for this! I’m sure many positive outcomes.

Redundancy is mostly solved using SPK and cost should be way way lower since you would be using most people’s spare storage space

I want to see this happening. With SPK people don't need a full copy of all the images, somehow it can be distributed around all validators and incentivize them to maintain the nodes.

Did SPK plan on having all nodes basically become CDN nodes and be able to have content delivered to end users from them or just host them similarly to how the videos are done right now?

We are working on the ‘run your own CDN node’ as part of this next phase

Definitely interesting. Going to work on images support with uploading for that as well or just for your videos?

All I read is the need for something added to the chain. Probably the same thing people always shouted about. Came under the name of onboarding, Mass onboarding. Big company being on the chain.
You can put anything else people have said in the past that the blockchain needed under that failure to see what is missing. All of the previous solutions are nothing but band aids.
You have the people who use the chain and that support is not enough. The chain pumps thousands into the support through proposals that mostly just pilfer rewards for very little results. There is no one fighting for the blockchain. There are people who say they are for the success of the blockchain, realistically only success for their project on the blockchain is wanted.

Note: This is not against you. Just a general observation. I do not know the tech side of the blockchain coding and things. So the things you say in the post are over my head. However, I do remember you showed me some grace of time when I was not long on the chain. Supported by vote to proposal.

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

Join us in Discord!

I thought the SPK network was going to handle images. Do you see that happening in the next months or years?

It is in my list of things to do to attend their meetings and have a chat with them. In comparison to monolith architecture (one big server) P2P and decentralized file hosting has its own pros and cons and those have to be weighted very carefully. But if done right, with the right code, right design plan -- it can actually be very viable and help bring down the costs, increase regional availability, lower latency, increase reliability. But as I said, these things will take time, cost, blood and tears to both design and implement.

If we can definitely pinpoint a better solution with SPK's code, I am planning to (rather than spending $10k on a single server) get way, way more servers around the world to do the bidding :)

Sounds great and sounds like you have experience which can help design a more decentralized file hosting, such as they are planning, that really does the job in a reliable way.

Very happy to support this proposal. As your API is always my fastest one.
The Image server is also something I can get behind as it has always been a worry for me to have all our eggs in one basket. I do hope that one day an IPFS solution will be used but this is a worthwhile Investment for the DHF.

Sounds very reasonable

You've got my two cents of support!

I support infrastructure building. I don't appreciate being notified via Friday bot on discord for a proposal.

images.hive.blog is hosted in US
images.ecency.com hosted in EU
perhaps having one in Asia region would be good start... Cost calculation is bit off, on quite higher end though, did you base estimation on images.hive.blog instance ?

Yes.

I had a discussion with BT regarding their instance and pretty much copied it (storage size wise) other cost additions are mainly "guesstimates" in regards to bandwidth and power usage.

I see, it makes sense then. From what I remember they host server in house.

Hi @deathwing, Can I ask you for a witness vote please. I am running a witness node, on my private server, hosted here in Adelaide, it would be great to have your support.