Note from translation author:
hello,
It seems this translation task is now
parallelized.
I modularized the codebase into units, each
smaller than the original 300k+ lines of code and
more manageable.
The modular structure will be easier to read,
easier to work with, easier to integrate with, and
easier to use -- for everybody on the planet.
After setting the scaffold, I translated crates
one by one, roughly in alphabetical order.
I did this until I realized the task was parallel.
It is more optimal to post it back to the
community.
Any individual should be able to use and
fruitfully interact with the whole interface.
We can finish this together *much* faster than
with a single thread of translation.
I have kept *everything* (from a functional and
logical perspective) how I found it -- in commit
ab25ef8c7f767258d5fe44f53b35ad8bd51ed5cd from the
original c++ codebase.
This may be independently verified.
Most of the function bodies are rust scaffolding
wrapping `todo!()` blocks and commented c++ code.
The functionality of the codebase itself will
become testable once the rest of the program is
translated.
I have included all tests/benchmarks/fuzzes from
the original project (at the noted c++ commit)
I hope this translation process challenges and
strengthens the antifragility properties of the
system.
Please see the TODO file for notes on how best
I imagine the challenge of translation completion
can be tackled.
Please see the CHOMPER file for notes on
a transpiler I have developed for this purpose.
I plan to come back to this project, though I have
some other work to attend to for a few months at
least (as of January 2023).
One day, I hope that we and the rust programs we
write will be able to speak bitcoin with each
other.
best,
-klebs