- The endian swapping code was actually doing bit-level swapping. Fixed
that now and added some tests.
- Also removed ugly #ifdefs from the code and abstracted it all into
macros which take care of the #ifdef logic
- Adding new api full and light client test
- Moving the test for the old API into a deprecated section. Will get
deleted along with that API.
- Adding 2 new functions for light/full clients. One to get the pointer
to the cache and one to move it out of the client
- Using a typedef struct instead of passing an array of hard coded
length of 32 bytes everywhere. It's much better C practise and also
gives us typechecking.
- Also corrected style in places I touched. I think a style PR should
follow after that.
- Adding tests for the functionality offered by ethash_io
- ethash_io_write() now accepts ethash_params and seedhash instead of a
block number. This is for better modularity but first and foremost for
testability via unit tests
- adding ethash_io_write() function
- only ethash_io_prepare() invoke system dependent functions so it's the
only one going in system specific source files.
- DAG and memo file creation will now be taken care of in libethash
itself.
- To that end we crete a very minimal IO module for ethash.
- Depending on the target system io_posix or io_win32 will be used.
- Implemented ethash_io_prepare() for posix