-
_I know what you might be thinking, "Where's the future addition?"_
Along the way of fulfilling that plan, I ran into many aspects of the code that simply left a sour taste in my mouth and likely your mouth as well. Hardcoding values and inconsistent naming in similar variables and functions to say a few. Not only that, different types (normal vs shared) did not use the same components when specifying the sync vs data interests.
To accompany these coding changes, I've also incorporated some important performance enhancements and found a security vulnerability which could be used to update the state vector while not being authorized.
Not to promise anything, but I have definitely progressed along the path of delivering a future addition in the next update. As always, be on the lookout!
This is a **stable release** but does slightly change the API (see _chat.py_).
**_NOTE: It is heavily advised to try to keep ``ndn-svs`` up to date with the latest release._**
**Additions:**
-
> No Hardcoding
* added ``tlv.py`` for Tlv Types
* added class variables for any other variables
> Proper Naming
* similar component naming across Shared and Normal types of SVSync
* ``seqno`` > ``seqnum``
* similar functions have similar names (sendPropInterest, sendSyncInterest) and better describe their usage
> Performance related
* speed up same-vector encoding via storing the last encoded wire: this HEAVILY decreases the CPU cost of SVSync when nodes join and when no data has been published in awhile.
> Useability
* added ``getNumTasks()`` and ``getWindowSize()`` to the AsyncWindow tool
* raise an expection ``SVSyncUnwaitedThread`` instead of not doing anything when performing actions on a SVSync thread that was not waited on.
**Bug Fixes:**
-
> Security
* balancer data packets were not signed / verified which is a security vulnerability that could have been exposited if left unpatched.
**Future Additions:**
-
* Another SVSync type is in the works
* SecurityOptions will receive a healthy revisit
* Documentation will receive a heavy amount of additions for ease-of-use and overall coverage