BlockSci v0.5.1
Feature Enhancements
-
Expanded iterator and range functionality to return NumPy arrays.
Many methods and properties of BlockSci objects return range or iterator objects such as
blocksci.TxRange
. These objects allow vectorized operations over sequences of BlockSci objects. Their API matches up with the API of their member objects, and thusblocksci.TxRange
has almost the same set of methods asblocksci.Tx
. These methods will efficiently call the given method over all items in the range or iterator. Depending on the return type of the method, the result will either be another range, a NumPy array, or a python list. For further information, look for these classes in the reference. -
Add custom BlockSci pickler to enable sending and receiving serialized BlockSci objects. This means that returning BlockSci objects from the multiprocessing interface now works correctly.
-
Enhance the change address heuristics interface
Change address heuristics are now composible in order to form new customized heuristics using the
blocksci.heuristics.change.ChangeHeuristic
interface. These can be used in combination with the new clustering interface described below. -
Incorporate clustering module into main BlockSci library
The formerly external clustering module is now avaiable as
blocksci.cluster
. Further, it is now possible to generate new clusterings through the python interface using the~blocksci.cluster.ClusterManager.create_clustering
method. Users can select their choice of change address heuristic in order to experiment with different clustering strategies. -
Simplified build system
BlockSci's install process no longer requires the compilation of any external dependencies to compile on Ubuntu 16.04. The BlockSci library no longer has any public dependencies so compiling against it will not require linking against anything else.
The CMake build script has now been updated to install a Config file which allows you to use find_package(blocksci) to import BlockSci's target's into your build script. This makes it much easier to build libraries that use BlockSci as a dependency.
The BlockSci python module has been moved into a separate module to allow for a simple SetupTools or pip based install process: pip install -e pyblocksci. The main BlockSci library must be installed first for this to work.
Finally, install instructions for the mac have been added along with Ubuntu 16.06 instructions.
-
Updated mempool recorder and integrated it into BlockSci interface.
For instructions on running the mempool recorder and using the data it produces, see the setup section.
-
Improve and clean up auto generated API reference.
All method signatures display correct types and all properties display the type of the returned value. Further, all types link to their definition in the documentation.
Bug Fixes
- Fixed rare parser bug causing blocks to be ignored (Issue #45, Issue #69)
- Removed hardcoded paths (Issue #72)
- Fixed
~blocksci.Block.miner
(Issue #76) - Made it possible to iterate over the ouputs linked to a cluster (Issue #81)
- Added pickling support (Issue #84)
- Added
~blocksci.Blockchain.reload
(Issue #98) - Fixed infinite loop in segmentChain (Issue #104)