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.

"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

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

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!

Exactly, i do not know if there is any way to disrupt block creation but attacking one front end application just creates some inconvenience for users and there will be more and more such applications in tne future so the whole DDOS attack will lose it's point in a way.

Like BeScouted thee first photography community in the world on the blockchain that we connected to Steem blockchain a few days ago was working fine as i could view and upload the content to the blockchain with no issues.

So yes we are somewhere. Everywhere and nowhere at the same time.

every bit practical but also sounds philisophical.

This all is really amazing, however not easy food for a layman. On one hand I am happy to see all the possibilities blockchain gives to us, on the other hand everything becomes more and more complicate. I have the feeling I get sucked up into nodes and figures. Actually I was on the way to simplify my life.

It is beautiful to see how blockchain technology is resilient to attacks traditional centralized services suffer. This is one of the main strengths of the architecture and today we just got an A on a stress test exam just because nothing was stressed!
Thanks for sharing your witness experience

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

That's JUST WHAT WE NEED! Every Steemer needs something like that. (that's a hint)

steem.city, which is now on hold
sorry to hear that. I was looking forward to it.

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

I can't. (It's geek to me). I suspect that the great majority of Steemers cannot.

How bout you make a 'sheel' for the cli_wallet (oh wait...you already did that?)...a user friendly interface that any Steemer can run on his computer independent of a browser?

speaking of SteemSupply (which I use dozens of times daily)
I got this earlier.

very alarming.
I almost had a heart attack.
It seems to be working now.

excellent! thanks for information

Exactly...we can do blockchain anywhere anytime but yes sometimes certain rumours discourages us..but we are confirmed that these rumours cannot affect us anymore..thanks for sharing the post..
I am resteeming it.

excellent post, retweeted, Mind.com, Google Plused and FBd. Thanks x

Out of interest, the author payment registered on this post is zero, which is weird. If you're posting from nowhere is that where your rewards go? Wouldn't steemit still pick them up though, even if you're writing from elsewhere in the steem environment? Or did you set it up through some kind of commission arrangement, a bit like dtube?

I think it's a glitch in the UI of the app you're using. On steemit.com it shows $3.98, but on eSteem I checked it now and it says 0. So it's because of something in eSteem.

I was looking on Steemit. The $3.98 is all curator rewards. There would typically be another $12 or so of author rewards which appear to have vanished into the ether.

It may be a UI bug, the post had a "split beneficiaries" policy, and probably because of that. But I got that author reward.