https://github.com/firedancer-io/firedancer/pull/716
Ditto for sha256: https://github.com/firedancer-io/firedancer/pull/778
And sha512: https://github.com/firedancer-io/firedancer/pull/760
If you’re an optimization nerd, this codebase is wild.
https://github.com/firedancer-io/firedancer/pull/716
Ditto for sha256: https://github.com/firedancer-io/firedancer/pull/778
And sha512: https://github.com/firedancer-io/firedancer/pull/760
If you’re an optimization nerd, this codebase is wild.
Not that you are technically wrong, not at all, that's where Jump came from. It's just that this is all completely blockchain-driven optimization, but the b-word is so dirty now that we've gotta go back to using TradFi for the rep.
If the Amazon improvements are hacker news worthy (they are) this seems reasonable contextually.
Also, I worked for Jump for almost 12 years :)
People have to forever be on guard that you might at any point pivot to all taxation is theft or how you have formed your own micro nation that consists entirely of yourself and thus have diplomatic immunity from all prosecution. Because it happens. Or maybe you have a once in a lifetime deal to buy this receipt like object for some hideous art that is guaranteed to appreciate in value millions of percent. It's just the crowd that has aggregated around crypto currencies includes a lot of untrustworthy people.
Granted, there are all kinds of whackos in crypto, but we should only be concerned about the immoral ones trying to scam us out of our money: SBF, Do-Kwon, and the like.
What a wasteful and unproductive enterprise, considering the vast majority of the devised improvements never see the public eye.
Still, impressive work. Imagine if those brilliant minds behind this were focused somewhere else.
- make people click on ads
- make trading algos faster
- replace human artists
- build more efficient killing machines
- destroy any remaining concept of privacy
Not to mention it also suggests there is a way to "compare" minds. I would not choose myself to do somethings, but that does not mean I despise automatically people choosing to.
It might not seem like real work, but making money by reducing costs of market participants sounds like a good thing. I admit though, block trades might be harder now than before the rise of HFT.
If you could do warehousing/distributing/coordinating fresh foods in a way that reduced the difference in price between the farmer and the consumer and make money doing it, that would clearly be good work.
nb those abstractions do make sense when you can only afford to write a single implementation of the algorithm; then you're just talking about a high level programming language. But they frequently fail to achieve their goal when you're writing a second implementation for the sole purpose of being faster.
/* All the functions in this file are considered "secure", specifically:
- Constant time in the input, i.e. the input can be a secret[2]
- Small and auditable code base, incl. simple types
- Either, no local variables = no need to clear them before exit (most functions)
- Or, only static allocation + clear local variable before exit (fd_ed25519_scalar_mul_base_const_time)
- Clear registers via FD_FN_SENSITIVE[3]
- C safety
*/
libsodium[4] implements similar mechanisms, and Linux kernel encryption code does too (example: use of kfree_sensitive)[5]. However, firedancer appears to better avoid moving secrets outside of CPU registers, and [3] explains that libraries such as libsodium have inadequate zeroisation, something which firedancer claims to improve upon.[1] https://github.com/firedancer-io/firedancer/blob/main/src/ba...
[2] https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplic...
[3] https://eprint.iacr.org/2023/1713
[4] https://libsodium.gitbook.io/doc/internals#security-first
[5] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
As another example, the Amazon implementation also doesn't refer to gcc's "strub" attribute which zeroises the function's stack upon return or exception of functions working on crypto secrets.[4][5] OpenSSL doesn't either.[3] firedancer _does_ use the "strub" attribute to allow gcc to zeroise the function's stack.[9]
Is there a performance impact? [6] has the overhead at 0% for X25519 for implementing CPU register and stack zeroisation. Compiling the Linux kernel with "CONFIG_ZERO_CALL_USED_REGS=1" for x64_64 (impacting all kernel functions) was found to result in a 1-1.5% performance penalty.[7][8]
[1] https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attribute...
[2] https://clang.llvm.org/docs/AttributeReference.html#zero-cal...
[3] https://github.com/openssl/openssl/discussions/24321
[4] https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Common-Type-At...
[5] https://gcc.gnu.org/onlinedocs/gcc/Stack-Scrubbing.html
[6] https://eprint.iacr.org/2023/1713.pdf
[7] https://www.phoronix.com/review/zero-used-regs/5
[8] https://lore.kernel.org/lkml/20210505191804.4015873-1-keesco...
[9] FD_FN_UNSANITIZED: https://github.com/firedancer-io/firedancer/blob/master/src/...
They follow a first principles approach (the lead has a few physics degrees) and opted to speed up the cryptography. The beauty of this, despite the bad views on blockchain, is that they freaking sped up the cryptography of commonly used algorithms more than anything open or closed source that I personally am aware of.
It’s a win in cryptography, much like this Amazon post is, except it’s slower than the firedancer implementation.
Kanav left, they liquidated a huge staked ETH position a few months ago (+ a bunch of other coins), and the SEC/CFTC is all over them for the Terra Luna fiasco.
Folks have said jump is gonna die for 20+ years. They’ve been around 30ish…
You can make the determination on your own, but there will be an obvious large showing of firedancer folks and some exciting updates for the project.
For users that have AVX-512, which isn't widely available (AMD Zen 4 / Zen 5, Sapphire Rapids)...
We should celebrate Amazon's improvements and we should celebrate these improvements. Both are great for the future of technology, regardless of why they were initially developed. Improving tech and keeping it open source is good for all.