Chaos Unicorn Day, April 1 2019 (aka kill our cluster)



You must have missed this @oskarth :wink:

Weekly Status Attack Day?


I love the idea though since most if not all of the app won’t work, I am also rather in favor of a special build for now. It could use instead of etherscan, a set of non-existent bootnodes and mailservers, wrong infura proxy, and so on…


If we’re dogfooding the app, we should be dogfooding it’s weaknesses too.


April 1st.
Chaos Unicorn day.


is “Chaos Unicorn Day Mother Fuckers” too much? I can redo the image if you all don’t like this one.


April 1 and Chaos Unicorn day it is!

If we are going do this it should be for the whole app, not making exceptions. The point is to kill all centralized aspects of our app and see how we deal with it (I’ll likely personally prepare with my own bootnode, for example). We can use special builds to prepare beforehand, if we wish.

As to how specifically, I’m sure we can figure something out. Could be time based or based on (non) responsive from a ping, etc. Suggest we do it from midnight UTC April 1 and for 24h. April 1 is a Monday.

Next steps:


@oskarth I highly suggest you prepare some comms and response for all the people who are not expecting this nor totally understand why you are doing it and what to expect. I.E. when everything breaks and stops working, you have a response to those who’s first reaction is to just stop using status and walk away.

For those people not immediately aware of the technical details of the cluster (which is many), they will just assume Status is broken/sucks and stop using it.

We have already seen some negative feedback from the EthDenver community (and those are people in the larger ethereum community) and @Hutch and myself work very hard to onboard these people, nurture their experience, and educate them. To throw away that work for an experiment is disappointing.


@jonathan I agree! One idea is to show a small popup in the app with a link to the site explaining what is going on. We should also tweet something and let people know in #status a few days beforehand.

There’s a big difference between things randomly breaking and deliberating constraining ourselves to what we are supposed to deliver. Considering how few users we are, and how involved they generally are in Web3, the latter is hardly “throwing them away”. If anything, these people are more likely to pay attention to what we are trying to enable here - censorship-resistant and decentralized communication that we can’t shutdown.

I realize this might seem scary and like a step backwards, but really this is a great opportunity to:
(a) build what we are supposed to be building
(b) educate people on what we are building and why
© involve them in making sure we deliver on our promises (e.g. we could make a “how to survive Status cluster blackout” with links to dappnode guide, etc)


This is absolutely essential, yes. We’re already being kicked around (i.e. the average civilian’s “wtf if Status doing with its millions to deliver a simple app?” attitude) by various other wallets/dapp browsers/messengers that have a more centralized aspect but people don’t mind because they’re not aware of what can go wrong. If this somehow goes mainstream, it can be an annual chaos holiday where Infura, Etherscan, and other API providers willingly power down their free APIs for 24 hours as a push directed towards the entire ecosystem, essentially doing a yearly reset of people’s expectations. There can even be a special “chaos API” that apps could opt to use, and only those using those APIs would be subject to the shutdown.

There is no better time to do this than now(ish) - the userbase is small and the protocol is being researched and is in need of thoroughly investigated vulnerabilities. This would let us truly prioritize.


It’s almost time! Follow up issue covering TODOs on cluster/app/comms side:

Raw notes from call a few weeks ago

Please keep in mind this is more of a fire drill, and should require minimal effort from most people, except on April 1 when it’s scramble time.


The preparation epic.


This Chaos Unicorn Day reminds me of the day we deleted slack, or rather the day @oskarth left slack and started the great migration. Here is the historical footage btw:

Anyway what really helped the transition for me was (and still is sometimes)
Despite all the time that I had to start over with a clean db, I was always able to rely on this directory to find the address of the people I needed to talk to.

In the case of the Chaos Unicorn Day, I wonder if we could have an equivalent for bootnodes and mailservers. Maybe a way to share bootnodes? Even communicate a twitter hashtag like #status-bootnode where people share qr codes?


I like the hashtag idea!


At least I have chicken.

Agree, how about using the #chaosunicorn hashtag? It’s already communicated in the website and blog post.


In regard to (Create an HTTP endpoint showing if Chaos Unicorn Day is active). I’ve talked about it with Igor, Pedro, and Roman, and suggested that using a HTTP endpoint is more work and less reliable. It would be simpler to just use a DNS TXT entry.

I’ve already created one for Roman to test when developing his App changes:

 $ dig +noall +answer TXT 300 IN TXT    "DO IT LIVE!"

When the day arrives I can simply switch it to be


Hallo ! For april the 1st I am running a node, please try it out:


Nice, I’ll be sharing my node on the day via twitter as well. Here’s a guide on how to get this up and running on ARM:


chaos-mode setting & blocked etherscan and cryptocompare are added here

Checking CUD flag & warning
will be added in this PR


In attempt to promote Chaos Unicorn day I put in a song request on Crypto Blood’s YouTube channel (it’s a thing he does) and I mentioned Chaos Unicorn day in the request. He played the song and shows my comment on screen 0:13 but didn’t mention the day. Hopefully people were watching the screen and not just listening.


For people who just got linked to this thread, here’s the live thread ----> Chaos Unicorn Day LIVE Discussion