edicted Blog Banner

edicted

The Day of Milestones!

baby stepping stones fix steem.png

@hextech signs first block ever!

That's right! We've received a lot more initial support than we were expecting. Thank you to everyone that's voted us thus far. Our first block created and signed was #43180010, a nice round number indeed. Since then we've apparently signed another block as well. We're on our way to becoming a real witness for the network.

firstdollar.jpg

Hold on, let me fix that...


firstdollarblockhextechsigned.jpg

Ah, that's better!

So apparently you have a higher chance of signing a block as the stand-in witness if you're higher up on the list. I didn't know that. It was my previous understanding that the top 100 had an even chance. Learn something new every day.

t2.png

We are so close to making the top 100 and appearing on the main witness list:

https://wallet.hive.blog/~witnesses


Even as I was writing this we ranked up!


t3.png

We only need 109M more vests to upvote us...

to get into the top 100 list. That's only an Orca's worth of stake (~50k)

Not begging for votes

We'll get there when we get there.

I'd just like to take this opportunity again to thank everyone who helped us get where we are today in such a short amount of time.

witnessschedule.jpg

https://hive.arcange.eu/schedule/

So this website by @arcange is pretty cool.

It shows the schedule of which witnesses are lined up to sign what blocks at what time. I still don't know how this process works exactly, but I'm going to need to figure it out if I want to start creating RNG gaming apps based off of block signatures. Baby steps.

coldsigningdsteem2.png

Speaking of signing transactions...

I finally did it! I signed this transaction offline and then was actually able to broadcast it to the network; meaning my owner key was never exposed to a machine connected to the Internet.

This is the precursor to my airgap hardware wallet.

Getting this transaction signed and broadcasted was very important to me, and I went to great messed up lengths to do it in order to secure my account and get away from the Steemit Inc. recovery system (obviously broken).

The hardest part was figuring out the variables: ref_block_num & ref_block_reference

However, I used my Discord contacts to help me out a bit.

@khaleelkazi (founder of LeoFinance) helped me out a lot and asked around for me. @gerber got back to him and I was provided with this valuable resource:

https://leofinance.io/steem/@xeroc/steem-transaction-signing-in-a-nutshell

Let's discuss the ref_block_* parameters a little: The ref_block_num indicates a particular block in the past by referring to the block number which has this number as the last two bytes. The ref_block_prefix on the other hand is obtain from the block id of that particular reference block. It is one unsigned integer (4 bytes) of the block id, but not starting at the first position but with an offset of 4 bytes.

The purpose of these two parameters is to prevent replay attacks in the case of a fork. Once two chains have forked, the two parameters identify two different blocks. Applying a signed transaction of one chain at another chain will invalidate the signature.

So not only does ref_block_num & ref_block_reference stop users from repeating a transaction on the same chain, it also prevents users from repeating a transaction on a forked chain. This was obviously very intriguing for me, because Hive just forked away from Steem and I was totally confused about how this would be accomplished.

Essentially, as long as ref_block_num references a block AFTER a hardfork, it would be impossible to broadcast that same transaction onto another fork. This is because the signatures of the 2 blocks on the separate forks would be completely different. Pretty cool. They really thought of everything, eh?

Because ref_block_num is only the last two bytes of the block number in question, it is impossible to reference a block that is very old. 2 bytes is 16 bits, so the maximum length of an unsigned integer stored in this structure is 2^16 or 65,536. Therefore, every 65,536 blocks the ref_block_num overflows back to zero and the process starts all over again. With 3 second blocks, this only ends up being about 54.6 hours per cycle.

I also learned that the max expiration a node will accept is one hour in advance.

This is to stop users from signing public transactions that could end up being valid for a very long time but don't end up getting broadcast to the network. You wouldn't want to accidentally sign an operation that sent $100 to someone, have it fail, and then get broadcasted by someone else like a month later.

It's stuff like this that really shows you how much development our chain has undergone. Not only that, Hive is basically a fork of Bitshares (Graphene) so all the mistakes that were made there were corrected well before Steem was even invented.

How did I cold-sign this transaction?

Well, I cheated a bit. I imported a block from a full node and inspected a transaction. Then I copied ref_block_num & ref_block_reference from a random transaction in that block to use as my own. I set the expiration date to several hours out and tested it, which is how I found out that one hour was the max.

From here, I plugged these numbers into my Raspberry Pi Zero and signed the transaction offline with my owner key, now all I needed to do was get that information back onto my computer with a flash drive.

Unfortunately, I was not able to copy the information to my flash drive because my Windows operating system and my Linux operating system aren't very compatible. I decided to bite the bullet and write the damn signature down BY HAND. OMFG it was so long, and I even wrote it down wrong the first time and missed 2 digits and had to go back and fix it.

signedTransaction.png
Hack pirate flag.png
However, in the end the transaction was successfully broadcast, and I was actually pretty surprised how "easy" it was.

Moving forward with this cold signing I need to create an Android app that will scan a QR code and broadcast the public transaction to the network through an airgap. At this point I may start a small venture on the side re-selling Raspberry Pi devices at a markup with the software I've developed.

I'm also hoping to include NES and SNES (retro Nintendo games) emulators and roms. Providing the roms is illegal copyright, so I hope to decentralize this pirating by setting up a torrent to download them or something like that so I wouldn't be liable.

So not only could you potentially buy an airgap hardware wallet from me, it would also simply appear to bystanders like a retro gaming console in Raspberry Pi form with every Nintendo and Super Nintendo game ever made. Gotta keep your funds a secret and get that added bonus, amirite?

gold bitcoin store of value.jpg

Bitcoin!

Bitcoin is finally doing what I said it was going to do. We are currently testing 10k resistance and I assume it will continue to climb parabolically next month. I won't start cost-average selling until the price hits 27k or if we see some kind of dead-cat-bounce confirmation.

On that note, I also own more than a full Bitcoin now. This is pretty exciting, especially considering Bitcoin dominance has been stomping the rest of the market. I expect the coin with the highest liquidity to reign supreme during this time when the fundamentals have never been put more to the test and validated. Remember, the doubling curve sits at around $8.5k at this time. This could be the last opportunity we have to lock in before we feel like we've been priced out of the market for a while.

Hive

Now that my account is much more secure and the price of Hive is low enough, I'm going to cancel my powerdown and power up all the liquidity I have. Long live Hive.

I'll be buying more if we hit the 3k sats level, and again at 2k sats.

t1.png

Idiots on Steem

Looks like the Korean community has booted up a Discord called Forkers and is inviting everyone who is mad about being left out of the "airdrop". Make no mistake, there was no real airdrop on Hive; we're simply a fork with a different distribution. It's not theft; they just can't get over it.

In any case they've been talking about various forks of their own. In fact one I learned about today was going to use the Hive code that we wrote to funnel funds into @steem.dao to do it back to everyone on Steem that supported the fork so the Koreans can steal our money. Apparently, this hasn't gone through and has been given the axe (probably by JSun himself) as it would completely destroy the entire integrity of the network.

t1.png

Even more amusing is that these scamming piece of shit assholes think they've invented a new consensus algorithm:

Proof of decentralized activity stake.

Such fucking assholes.

Tell me, what's your master plan to stop users from Sybil attacking your network and farming all the rewards with bots?

Oh, what's that?

You don't understand what a Sybil attack is because you voted for sockpuppets?
Fuck you!

God, these fucking people.

Someone put them out of their misery. I swear.

t1.png

On that note, it looks like an airdrop proposal is about to pass. Go vote for it, as many of the top witnesses are actively supporting this one. The four accounts in question claim to have accidentally voted for 2 or more sockpuppets. It seems like the network believes them. Passing this one has good optics for the network so I suggest we all vote for it.

https://peakd.com/airdrop-proposal/@crimsonclad/hive-secondary-airdrop-proposal-4-additional-individuals

amazonpromotionprocessassistantpa.png

WEAK!

This is like the 6th full time position I've applied to at Amazon, and the first time they've gotten back to me for an interview. Man, I'm not even sure if I want this job. It's so crazy that all this stuff is happening at the same time. I guess I have a lot to think about.

On one hand, if I work full time, I'll make a lot more money because I don't spend money on shit. That's like over $1000 I could just dump into Hive every month. On the other hand I'd have a lot less time to blog and help with the @hextech witness project. HMMMMMMMMMM.

It also would be nice to stop working a manual labor job that's fucking up my rotator cuff. And if I was making enough extra money I might be willing to pay for the full-node upgrade on the @hextech witness. Decisions decisions.

At the same time a "process assistant" is the lowest level of the management tier, which isn't even where I want to be. The only reason why I applied for the job was so if I get it I would be in a better place to transfer over to logistics. Boo! Boo!!!1

Conclusion

Never a dull moment. The stars are aligning. It feels like the decisions I have to make recently are very important. Here's to hoping I make the right ones.


Return from The Day of Milestones! to edicted's Web3 Blog

The Day of Milestones! was published on and last updated on 07 May 2020.