Posts

Podping continues pinging without a hitch during HF 26: what is a Hard Fork?

avatar of @brianoflondon
25
@brianoflondon
·
0 views
·
7 min read

Hard Fork 26

For those of you who blog or post videos or use any of the dapps on Hive you're not supposed to really notice Hard Forks directly. But it was a big deal and perhaps you noticed things feeling faster.

Blockchains are special

In Web 2.0 land with something like Twitter or Meta/Facebook, behind the scenes those companies are continually updating, upgrading or changing their internal systems. Every now and then they do something the users see like add a button or move something in the interface.

In real Web 3.0, where we are on Hive, the process of making back end changes is called a Hard Fork. This is because we want to change the systems which processes new information coming in. When you change these rules, the "blockchain" splits or "forks". The old one usually dies off quickly, and the new "fork" continues. This is a Hard Fork. And this is the software part which Hive Witnesses run for us.

Front end systems, of which we have many, such as @peakd, @ecency, @threespeak and dapps like @splinterlands or my own @v4vapp all have to check whether any of these back end changes affect the way their individual apps work.

Sidenote: what a Hard Fork IS NOT

Sidenote: the New York Times top technology editors just named a podcast Hard Fork and then gave a COMPLETELY erroneous and made up definition of a Hard Fork: to justify the show's name. Which just shows how much they know at the Old Grey Lady.

A hard fork is a programming term for when you're building something that gets really screwed up. So you take the entire thing, break it and start over.

🖕 This is complete nonsense!

A Hard Fork to upgrade Hive

This is where the departure from Web 2.0 is so obvious: we are not one corporate body with a clear command and control structure.

To upgrade Hive takes human consensus. Developers have to write new core software. Then two thirds of the top 20 witnesses have to AGREE in advance to run new software. Only when more than 2/3rds of the top 20 are running the software, is a signal sent out that all future data will be processed in the new. That is consensus enforced by software.

Podping

Podping has already become essential to the world of independent Podcasting.

As I write this over the last hour various Podping accounts have sent 80 podpings containing links to 201 podcasts.

     pings /  shows 
1hr:   80  /    201 
4hr:   867 /  3,130 
8hr: 1,470 /  6,411 

Hard Fork 26

I must admit I was somewhat apprehensive about this Hard Fork mostly because of the Resource Credit changes. The main software which was developed, mostly by myself and with huge and critical help from @alecksgates, performs a check for resources on startup. I was fairly certain this check wouldn't work properly post HF26.

Fortunately there is a command line option to disable this and it is in use in a number of places.

Nevertheless we now have a new docker image and hopefully it will be fully deployed shortly.

Resource Credits vs HP delegation

In the background I have done a significant amount of extra work and I want to open source that soon. If you want to make RC Delegations with a web front end, @bambukah has released this site.

Pre HF26 Podping ran on delegated Hive Power. The @podping account, which was the beneficiary of around 7000 HBD from the first funded proposal I ever put in to the DHF. The proceeds of that funding were mostly powered up and from that pot of HP I've been delegating HP. The top 3 accounts sending Podpings are called @podping.aaa @podping.bbb and @podping.ccc. Up to now those had around 1,300 HP delegated to them. In the transition period we're in now, I've delegated 5,000 HP from @brianoflondon directly back to @podping. Because it takes 5 days to un-delegate, following HF26 I have quite a bit of reorganising to do.

Now that the RC delegations are possible, in the future I will be able to remove HP delegations and just delegate RCs. To that end I've built an automatic delegation system (which I plan to open source though it's not going to remain a tool for developers mostly).

My bot is checking the chain every minute (I may drop this frequency when things settle down) and checking the RC levels of the various accounts I know to be active on Podping.

If an account falls below 42.5% (I'm making the numbers up at this point) I top it up with some RCs: just enough to put it back over 42.5% and a bit more. There are larger top ups if the level falls dangerously low.

In the example log below you can see two accounts fell below my threshold and received delegations. This is the transaction on the chain that did that: 0b3a87ba795b3570ee771c6eff93237c75559664. You can see the exact format of the custom_json in the log below.

The net result of not having to delegate HP to individual Podping accounts is that I can retain the HP and use it for curation or other more valuable uses.

Account          |  RC   %|  RCs Now       |  Max RCs      | Delegated out  | Received Dele | 
podping          |  37.9 %|    3,261,300 M |   8,610,104 M |    2,483,806 M |           0 M | 
podping.ddd      |  43.1 %|       14,304 M |      33,217 M |            0 M |       9,485 M | 
podping.ccc      |  43.9 %|      484,531 M |   1,103,699 M |            0 M |   1,079,968 M | 
podping.curio    | 100.0 %|       23,621 M |      23,621 M |            0 M |           0 M | 
podping.spk      |  43.8 %|       23,005 M |      52,539 M |            0 M |      45,102 M | 
podping.eee      |  42.4 %|       45,528 M |     107,358 M |            0 M |      83,813 M | 
podping-git      |  80.0 %|       92,866 M |     116,034 M |            0 M |      92,303 M | 
podping.aaa      |  43.8 %|    1,020,523 M |   2,328,045 M |            0 M |           0 M | 
podping.gittest  |  73.1 %|      576,084 M |     788,075 M |            0 M |     601,541 M | 
podping.bbb      |  42.4 %|      252,274 M |     595,325 M |            0 M |     571,593 M | 
podping.live     |  99.9 %|      186,498 M |     186,767 M |            0 M |           0 M | 
podping.eee      |  42.4 %|       45,528 M |     107,358 M |            0 M |      83,813 M | 
podping.bbb      |  42.4 %|      252,274 M |     595,325 M |            0 M |     571,593 M | 
podping.curio    | 100.0 %|       23,621 M |      23,621 M |            0 M |           0 M | 
podping.live     |  99.9 %|      186,498 M |     186,767 M |            0 M |           0 M | 
 
   1.1% top up podping.eee |       83,813 M ->       89,280 M 
Increase: acc_from='podping' acc_to='podping.eee' delegated_rc=89279944449 
   1.1% top up podping.bbb |      571,593 M ->      602,099 M 
Increase: acc_from='podping' acc_to='podping.bbb' delegated_rc=602098545952 
 
[['delegate_rc', {'from': 'podping', 'delegatees': ['podping.eee'], 'max_rc': 89279944449}], ['delegate_rc', {'from': 'podping', 'delegatees': ['podping.bbb'], 'max_rc': 602098545952}]] 
 
Account          |  RC   %|  RCs Now       |  Max RCs      | Delegated out  | Received Dele | 
podping          |  37.9 %|    3,251,099 M |   8,574,131 M |    2,519,778 M |           0 M | 
podping.ddd      |  43.1 %|       14,304 M |      33,217 M |            0 M |       9,485 M | 
podping.ccc      |  43.8 %|      483,640 M |   1,103,699 M |            0 M |   1,079,968 M | 
podping.curio    | 100.0 %|       23,621 M |      23,621 M |            0 M |           0 M | 
podping.spk      |  43.8 %|       23,005 M |      52,539 M |            0 M |      45,102 M | 
podping.eee      |  45.2 %|       51,007 M |     112,825 M |            0 M |      89,280 M | 
podping-git      |  80.0 %|       92,866 M |     116,034 M |            0 M |      92,303 M | 
podping.aaa      |  43.7 %|    1,018,392 M |   2,328,045 M |            0 M |           0 M | 
podping.gittest  |  73.1 %|      576,084 M |     788,075 M |            0 M |     601,541 M | 
podping.bbb      |  44.8 %|      280,284 M |     625,830 M |            0 M |     602,099 M | 
podping.live     |  99.9 %|      186,498 M |     186,767 M |            0 M |           0 M | 
podping.curio    | 100.0 %|       23,621 M |      23,621 M |            0 M |           0 M | 
podping.live     |  99.9 %|      186,498 M |     186,767 M |            0 M |           0 M | 
podping          |  37.9 %|    3,251,099 M |   8,574,131 M |    2,519,778 M |           0 M | 

Real cost of running the Hive blockchain

Resource Credits or RCs are supposed to represent the cost to the chain of performing actions like storing text immutably (for ever) which is what I'm doing with Podpings. To this end it is absolutely critical that these costs be realistic and sustainable. Hive doesn't have a VC sugar daddy keeping it going. Hive exists because the Witnesses and all the other businesses and individuals who use Hive, contribute to the equipment and software which keep it running.

I can see that the cost of posting Podping's pings to the chain has gone up, but the reality is it was too cheap before. However it is critical to understand this "cost" isn't like the gas fees or transaction fees on Ethereum or Bitcoin because RCs regenerate.

The cost is, in reality an investment in Hive which is what holding Hive and powering up to get Hive Power actually is. Having Hive Power is akin to being a shareholder in this Hive system AND it gives you the right to use Hive.

However I feel personally about changes to the resource requirements to use Hive for my applications, as a part owner in the entire enterprise I recognise when these changes are necessary to keep the entire system available.

Hive really is unique

I've done basic research into other ways to run Podping and I've not found any. @theycallmedan has gone indepth on plenty of other projects. Hive is unique and a damn near miraculous piece of technology. Don't worry about when the rest of the world will notice, in fact I'm more than happy if we fly under the radar through at least another bull and bear cycle. What we have here on Hive is much more important than a token price or any one of our public facing distributed apps.

V4Vapp

Just a short note: @v4vapp came through HF26 pretty much unscathed. I had to make a tiny modification to the way it posts regular updates about the cost of using the system but that was all. You can use the system at v4v.app where you can send and receive sats with Hive or HBD. The maximum transaction size is now 400,000 sats which is roughly $75 worth.


Support Proposal 222 on PeakD Support Proposal 222 with Hivesigner Support Proposal 222 on Ecency