>OS
<by a lot, not even close!
Requires top to bottom knowledge of the architecture, ties it all together, provides I/O, and a context for other programs to run. Even a shitty O/S has to be pretty extensive, and a decent will have threading which is another beast. Has the most moving and varied parts of the other options; extremely impressive if implemented correctly and even moreso if useful for real-world application.
>cryptocurrency exchange
This is just application programming; it's not difficult conceptually, but it's a lot of work and polish to do it right.
>language
Ranges from easy (domain-specific languages) to hard (modern programming language). Writing a compiler is actually fucking simple if you're using the right tools. Doing it from scratch would be a nightmare; we stand on the shoulders of giants.
>blockchain
Dead-simple to implement, because again, you're standing on the shoulders of giants and reusing all of the cryptographic mathematics. The various blockchains available tend to add novel features on top of this; they don't reinvent the fundamentals.