Skip to content

Releases: sociomantic-tsunami/dhtproto

v14.0.0 auto-converted to D2

v14.0.0

30 Jan 11:13
Compare
Choose a tag to compare

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

23 Jan 10:37
Compare
Choose a tag to compare

neo-alpha-4

03 Nov 14:17
Compare
Choose a tag to compare
neo-alpha-4 Pre-release
Pre-release

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

09 Oct 15:20
Compare
Choose a tag to compare

v13.1.0

06 Oct 12:40
64f4c14
Compare
Choose a tag to compare

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

09 Aug 14:47
Compare
Choose a tag to compare
  • Pause after assigning Listen in tests to ensure node is handling request #17

neo-alpha-3

08 Aug 11:00
Compare
Choose a tag to compare
neo-alpha-3 Pre-release
Pre-release

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. The Settings.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 type Neo.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 the timed_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

02 Aug 15:10
Compare
Choose a tag to compare

This release is a snapshot of the code of our private dhtproto repo at the same tag (i.e. v13.0.0).

https://github.com/sociomantic-tsunami/dhtproto/milestone/1