How I Post On A Site That Doesn't Really Exist: The Amazing Case Of the Steem Blockchain

in #steemcity7 years ago

I'm writing this post on a barely finished UI, hastily put together on my own laptop, just a bunch of code scrapped on a lazy afternoon. It's a collection of HTML elements, mixed with a bit of JavaScript and interweaved with a few API calls to the Steem blockchain (I started all this for a bigger project, called, steem.city, which is now on hold).

I started like this so you can have the context. Just to make sure you got this: I'm not posting from a website. I'm not posting to an internet website. Ok?

Where Am I, Then?

For the last few hours, the website steemit.com has been under a DDoS attack. Somebody's really pissed and he fired his canons. Oh, well. Happens.

But what that somebody may not know, or may not be fully aware of, is that you can't DDoS a website which doesn't really exist.

Ha? What kind of sorcery is this?

Well, steemit.com is just one of the entry points to the Steem blockchain. There are many others. For instance, there are a few other established websites, like busy.org, or chainbb.com. These are not under attack right now (probably the attacker doesn't know about them or he doesn't have enough resources).

And then there are interfaces like this one, barely put together by a geek, on a lazy afternoon, and which are not public.

And then, obviously, there is the cli_wallet interface, or the command line. You can read and interact with the blockchain just from your terminal.

As a witness, the first thing that I checked when I realized steemit.com is under attack was my witness node. I didn't get any alert that I was missing blocks, so nothing seemed off. And, of course, nothing was off: my witness was continuing to produce blocks, like it did for the last 4 months.

842036ms th_a witness_plugin.cpp:566 block_production_loo ] Generated block #16087702 with timestamp 2017-10-06T08:30:42 at time 2017-10-06T08:30:42 by dragosroua
2076022ms th_a witness_plugin.cpp:566 block_production_loo ] Generated block #16090179 with timestamp 2017-10-06T10:34:36 at time 2017-10-06T10:34:36 by dragosroua
1710009ms th_a witness_plugin.cpp:566 block_production_loo ] Generated block #16092456 with timestamp 2017-10-06T12:28:30 at time 2017-10-06T12:28:30 by dragosroua
1743039ms th_a witness_plugin.cpp:566 block_production_loo ] Generated block #16094867 with timestamp 2017-10-06T14:29:03 at time 2017-10-06T14:29:03 by dragosroua

So, as you can see, the blockchain is ok.

So where am I, then?

The beautiful, liberating answer to this question is: wherever the fuck I want to be.

As long as I can interact with the blockchain, without even having a hosted website, then I'm ok.

The blockchain - not only the Steemit blockchain, but all of them - is a really beautiful piece of engineering. Data is everywhere - because you can get it anytime - and nowhere - because there isn't in any specific place that can be shut down.

We used to be on steemit.com.

Now we're everywhere.


I'm a serial entrepreneur, blogger and ultrarunner. You can find me mainly on my blog at Dragos Roua where I write about productivity, business, relationships and running. Here on Steemit you may stay updated by following me @dragosroua.


Dragos Roua


You can also vote for me as witness heren:
https://steemit.com/~witnesses


Posted from steem.city - an experimental service on the Steem blockchain.
Beneficiaries: @dragosroua, @raluca, @steem.city

Sort:  

Is it possible to DDOS the witness nodes? I would imagine if you could DDOS the top 100 or so witnesses that would pretty much bring down the blockchain. Am I correct in that thinking? Are there enough active witness nodes to make that not feasible?

Witness nodes are not DDoS-able. Each witness has its own IP and the amount of necessary resources to bring down 20-30 different IPs would be unconceivable and even if you manage that, there are 100 witnesses, so the rest of 70 will be scheduled in the place of the non-working ones. You simply can't break this shit.

Are you sure about that? I don't think the number of different IP addresses matters, it's how much traffic the servers behind that IP address can handle. A typical large website will usually have one IP address but that goes to a load balancer which distributes the requests to any number of servers. The more servers, the more traffic it can handle.

I would guess that SteemIt.com can handle much more traffic than a single witness node so I guess the question is how much traffic does it take to bring down a single witness node and then from that you can see if it's reasonably possible to bring down 100 of them.

It's complicated further because the witness nodes IP's aren't always even publicly accessible, and they can be connected through VPN's to redundant nodes all over the world (example).
These attacks will only make us stronger ;)

Thanks, that post you linked to was really helpful!

This is really insightful. I've been in PAL discord all morning and lots of people are like "why is steemit down?", "shouldn't the witnesses prevent this, it's their job? blah, blah", "is my money ok?", etc.

You make a great point that there are multiple sources of entry onto the blockchain.

I saw people panicking that Steemit would die, but it is pretty hard to kill. As I understand it we just need witnesses doing their thing. Eventually we may all be using apps and then this is no site to DDOS.

Exactly!

The resilience is a wonderful thing to behold. I get so excited seeing the benefits of block chain and distributed architecture playing out in real life. Well articulated post.

It's pretty exciting learning of this technology works through an attack like this, even though we couldn't get out steemit fix for most of the day.

Thanks so much for this information, it was a little dis-heartening this morning but not the end of the world. Now that I know there are other windows to the chain I feel way better. I Only checked steemd myself then went to discord for info. I never thought of busy or chainbb, thank goodness for them, I never saw the point till now.
Life is good

"We used to be on steemit.com and now we are everywhere"....Hahaha, I had a good laugh with that one, thanks for letting us know what really happened to the website earlier. I didn't really understand any big implications of blockchain up until this post, so thank you again for giving me a new topic of interest...... Keep steeming

Very interesting. God I need to learn more about interacting with blockchain.

Interessing post Witness , thank you for sharing with us this infos

Yes. It was good to still be able to use esteem on the phone or chainbb and busy.org on the pc even while it was down.. But it got me thinking about my wallet and steem power. If steemit went down (not that its likely) would there be a clear way to get to our steem power/ SBD/ Steem?

The blockchain is very difficult to be taken down by a DDoS (although not impossible, as we've seen in Ethereum, for instance). So even if the site, steemit.com, is down, you can still interact with the blockchain by using a command line tool, or a JavaScript or PHP library.

ohh I have never used command line but remember theprophet0 bringing it up at some point. Talking about peerplays or something. and by interacting with the blockchain in command line, even if steemit were down I can power down and power up steem power and send steem out of my account through there? If so I guess I need to learn some command line just to know it.. Thanks for the quick response!