Nyzo techRelease notesNyzo 500: nickname manager memory

Nyzo 500: nickname manager memory

Nyzo version 500 (commit on GitHub) corrects a stability issue with the nickname manager.

This version affects the verifier only. The sentinel does not use the nickname manager.

The NicknameManager class provides storage and lookup of verifier nicknames. These nicknames are for convenience and amusement only, and they are not considered in any blockchain calculations. However, this class was causing a stability issue because it did not have any protections in place to limit memory usage. This version adds some simple but effective protections to ensure the NicknameManager class does not consume excessive memory.

In the NicknameManager class, nicknameMap has been changed to a ConcurrentHashMap to improve thread safety. A constant for maximumNicknameLength has been added, also.

RN_500 code 0

The actual protection logic is coarse but effective. Before, nicknames were added to the map without any checks on length and without any consideration of the size of the map. In this version, a check on nickname length has been added, and non-cycle verifiers are excluded from the map after it has reached a size of 2000. Note there is no cleanup logic, so the map size is still technically unbounded, but the rate is so slow that this is not enough of a concern to justify additional code complexity.

RN_500 code 1

For this issue, ∩75,000 was awarded to a460....8f71 (transaction 1: ∩47,000, transaction 2: ∩3,000, transaction 3: ∩25,000)