Releases: sociomantic-tsunami/dhtproto
v14.0.0 auto-converted to D2
v14.0.0
https://github.com/sociomantic-tsunami/dhtproto/milestone/8
Migration Instructions
Minimal required versions of ocean, swarm, turtle have increased
Starting with v14.0.0, dhtproto supports and requires ocean v4.0.x, swarm
v5.0.x, and turtle v9.0.x.
v13.2.0 auto-converted to D2
v13.2.0
https://github.com/sociomantic-tsunami/dhtproto/milestone/7
(No user-facing changes.)
neo-alpha-4
https://github.com/sociomantic-tsunami/dhtproto/milestone/3
Migration Instructions
New GetAll notification: received_key
dhtproto.client.request.GetAll
The GetAll request now has an additional notification type: received_key
.
This notification will only occur when the request settings keys_only
field
is true.
Check all GetAll notifier delegates and adapt to handle this case as needed.
New Put notification: value_too_big
dhtproto.client.request.Put
The neo Put request now enforces a size limit on record values written to the
DHT. Any record value which is larger than the constant defined in this module
will be rejected. The user will be notified of this via the new
value_too_big
notifier.
Put notifiers in existing code should be updated to handle the new
notification type as appropriate.
New Features
Simple task-blocking GetAll API
dhtproto.client.mixins.NeoSupport
The blocking
API object now has a new method -- getAll
-- which returns an
iterator over the keys and values of records received by a GetAll request.
Neo Config-accepting constructors
dhtproto.client.DhtClient
New constructors have been added (including to the derived classes
ExtensibleDhtClient
and SchedulingDhtClient
) that accept an instance of
Neo.Config
(see dhtproto.client.mixins.NeoSupport
). The config instance is
expected to have been read in from a config file using
ocean.util.config.ConfigFiller
.
GetAll value filtering and keys-only mode
dhtproto.client.mixins.NeoSupport
, dhtproto.client.request.GetAll
The GetAll request now has a Settings
struct which can be passed to the
getAll
method of the client. The following options exist:
keys_only
: sets the request to only fetch the keys of records in the
channel, not the values.value_filter
: filters out record values which do not contain the
specified binary sequence.
GetChannels request
dhtproto.client.mixins.NeoSupport
, dhtproto.client.request.GetChannels
The new request GetChannels allows the client to query the names of all
channels in the DHT. Both callback-based and task-blocking versions of the
request are available.
Value deserializing helper (Get, GetAll, Mirror)
dhtproto.client.request.Get
, dhtproto.client.request.GetAll
,
dhtproto.client.request.Mirror
The Get, GetAll, and Mirror request notifications that provide a record value
(with or without an associated key) to the user now expose a method template
called deserialize
. This method provides a simple API for deserializing
DHT records to a specific struct type, using
ocean.util.serialize.contiguous.Deserializer
.
v13.1.1
v13.1.0
https://github.com/sociomantic-tsunami/dhtproto/milestone/5
Features
dhtproto.*
Usage of deprecated ocean's modules ocean.util.log.Log
and
ocean.text.convert.Format
is now avoided, as they will be deprecated in the
next ocean releases.
v13.0.1
neo-alpha-3
Initial tsunami alpha release of the DHT neo protocol.
The release notes below note changes versus the internal neo-alpha-2
release.
https://github.com/sociomantic-tsunami/dhtproto/milestone/2
Migration Instructions
-
dhtproto.client.request.Get
The notification union for Get requests now includes an additional field:
timed_out
. Get notifiers should be updated to handle this field (a simple
case timed_out: break;
is sufficient, if your application is not using Get
timeouts). -
dhtproto.client.DhtClient : Neo
,dhtproto.client.request.Mirror
The API of the Mirror request has changed such that it is no longer possible
to start a Mirror request which does not stream live updates from the node to
the client. TheSettings.live_updates
flag has been removed, along with the
finished
notification. Now, the only way for a Mirror request to end is if
the user stops it (or the channel being mirrorred is removed).
New Features
-
dhtproto.client.DhtClient : Neo
,dhtproto.client.request.GetAll
The new GetAll request provides a way to fetch a snapshot of all records in a
channel. If the request is interrupted (e.g. by a connection error), it is
automatically restarted and continues where it left off. -
dhtproto.client.DhtClient : Neo
The
get
method now accepts an optional argument of typeNeo.Get.Timeout
,
specifying a milliseconds timeout value. If the request has not completed
before the timeout expires, the request is aborted and the notifier called
with thetimed_out
notification. -
dhtproto.client.request.Mirror
A new notification type --
updates_lost
-- has been added. The node sends
this notification to the client when its internal queue of updates to be sent
overflows. This means that at least one update has not been sent to the
mirroring client and indicates that there's a disparity between the rate at
which updates are being made to the mirrored channel and the rate at which the
Mirror request is able to inform the client of these updates.
v13.0.0: initial tsunami release
This release is a snapshot of the code of our private dhtproto repo at the same tag (i.e. v13.0.0).