Skip to content
This repository was archived by the owner on Apr 5, 2024. It is now read-only.

Commit a780ee8

Browse files
committed
Update readme & changelog for v0.9.1
1 parent 9bc28b4 commit a780ee8

File tree

2 files changed

+50
-41
lines changed

2 files changed

+50
-41
lines changed

CHANGELOG.md

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!--
2-
SPDX-FileCopyrightText: 2020, 2021 Markus Sommer
32
SPDX-FileCopyrightText: 2020, 2021 Alvar Penning
3+
SPDX-FileCopyrightText: 2020, 2021, 2022 Markus Sommer
44
55
SPDX-License-Identifier: GPL-3.0-or-later
66
-->
@@ -25,7 +25,7 @@ Types of changes:
2525
- Security in case of vulnerabilities
2626
-->
2727

28-
## [Unreleased]
28+
## [0.9.1] - 2022-05-20
2929
### Added
3030
- Connect Administrative Records with Bundle and BundleBuilder.
3131
- Make PingAgent configurable as a dtnd Agent.
@@ -45,10 +45,14 @@ Types of changes:
4545
- Bump draft-ietf-dtn-bpbis version from 26 to 31.
4646
- Restrict dtn URI node name to `[\w-._]+`, _ietf-dtn-bpbis-27_.
4747
- "Block unintelligible" status report is replaced by new "Block
48-
unsupported" status report code for non processable blocks.
48+
unsupported" status report code for non-processable blocks.
4949
- Bump draft-ietf-dtn-tcpclv4 version from 21 to 23.
50+
- Bump `go`-dependencies
5051
- Set Linux-specific socket options for a MTCP Client's connection to
5152
detect an abrupt connection loss.
53+
- Check for existence of `ExtensionBlock` before adding a new one.
54+
- Have `Bundle` and `BundleDescriptor` return the same type
55+
when calling `ID`-method.
5256

5357
### Fixed
5458
- Include nil-check for EndpointID's internal representation.
@@ -58,6 +62,7 @@ Types of changes:
5862
absence of an integrity block (BPSec).
5963
- Exclude the peer discovery Manager's function field from the
6064
JSONFormatter used by logrus. Otherwise, the struct cannot be encoded.
65+
- Set the default `DTLSR` edge-cost > 0
6166

6267

6368
## [0.9.0] - 2020-10-08
@@ -316,7 +321,8 @@ First, unstable release
316321
[0.7.1]: https://github.com/dtn7/dtn7-go/compare/v0.7.0...v0.7.1
317322
[0.8.0]: https://github.com/dtn7/dtn7-go/compare/v0.7.1...v0.8.0
318323
[0.9.0]: https://github.com/dtn7/dtn7-go/compare/v0.8.0...v0.9.0
319-
[Unreleased]: https://github.com/dtn7/dtn7-go/compare/v0.9.0...master
324+
[0.9.1]: https://github.com/dtn7/dtn7-go/compare/v0.9.0...v0.9.1
325+
[Unreleased]: https://github.com/dtn7/dtn7-go/compare/v0.9.1...master
320326

321327

322328
<!-- vim: set tw=72 colorcolumn=72 ts=2 ft=markdown spell: -->

README.md

+40-37
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
SPDX-FileCopyrightText: 2019, 2020, 2021 Alvar Penning
33
SPDX-FileCopyrightText: 2020 Jonas Höchst
44
SPDX-FileCopyrightText: 2020 Matthias Axel Kröll
5+
SPDX-FileCopyrightText: 2022 Markus Sommer
56
67
SPDX-License-Identifier: GPL-3.0-or-later
78
-->
89

910
# dtn7-go
1011
[![Release](https://img.shields.io/github/v/tag/dtn7/dtn7-go?label=version)](https://github.com/dtn7/dtn7-go/releases)
11-
[![GoDoc](https://godoc.org/github.com/dtn7/dtn7-go?status.svg)](https://godoc.org/github.com/dtn7/dtn7-go)
12+
[![PkgGoDev](https://pkg.go.dev/badge/github.com/dtn7/dtn7-go)](https://pkg.go.dev/github.com/dtn7/dtn7-go)
1213
[![CI](https://github.com/dtn7/dtn7-go/workflows/CI/badge.svg)](https://github.com/dtn7/dtn7-go/actions)
1314
[![REUSE status](https://api.reuse.software/badge/github.com/dtn7/dtn7-go)](https://api.reuse.software/info/github.com/dtn7/dtn7-go)
1415

@@ -21,22 +22,25 @@ This software implements the current draft of the Bundle Protocol Version 7.
2122
- Bundle Protocol Version 7 ([draft-ietf-dtn-bpbis-31][dtn-bpbis-31])
2223

2324
### Convergence Layer
24-
Bundles might be exchanged between nodes by the following protocols.
25+
A *convergence layer* in bundle protocol parlance is the abstraction for peer-to-peer communication.
26+
We have implemented the following protocols:
2527

26-
- TCP Convergence Layer Protocol Version 4 ([draft-ietf-dtn-tcpclv4-23][dtn-tcpcl-23]), including:
27-
- WebSocket-based variant
28-
- Minimal TCP Convergence-Layer Protocol ([draft-ietf-dtn-mtcpcl-01][dtn-mtcpcl-01])
28+
- Minimal TCP Convergence-Layer Protocol (`mtcp`) ([draft-ietf-dtn-mtcpcl-01][dtn-mtcpcl-01])
29+
- TCP Convergence Layer Protocol Version 4 (`tcpcl`) ([draft-ietf-dtn-tcpclv4-23][dtn-tcpcl-23]), including:
30+
- WebSocket-based variant
2931
- Bundle Broadcasting Connector, a generic Broadcasting Interface
30-
- [rf95modem] based CLA for LoRa PHY by [rf95modem-go]
32+
- [rf95modem] based CLA for LoRa PHY by [rf95modem-go]
33+
34+
At this point, `mtcp` is probably your best bet for reliable data transfer.
3135

3236
### Routing
33-
One of the following routing protocols might be used.
37+
We have implemented the following routing algorithms:
3438

35-
- Delay-Tolerant Link State Routing (DTLSR)
3639
- Epidemic Routing
37-
- Probabilistic Routing Protocol using History of Encounters and Transitivity (PRoPHET)
38-
- Sensor Network specific routing algorithm for Data Mules, [documentation][sensor-network-mule-documentation]
3940
- Spray and Wait, vanilla and binary
41+
- Delay-Tolerant Link State Routing (DTLSR)
42+
- Probabilistic Routing Protocol using History of Encounters and Transitivity (PRoPHET)
43+
- Sensor Network-specific routing algorithm for Data Mules, [documentation][sensor-network-mule-documentation]
4044

4145

4246
## Software
@@ -51,7 +55,7 @@ One of the following routing protocols might be used.
5155

5256
#### From Source
5357

54-
Install the [Go programming language][golang], version 1.13 or later.
58+
Install the [Go programming language][golang], version 1.16 or later.
5559

5660
```bash
5761
git clone https://github.com/dtn7/dtn7-go.git
@@ -64,30 +68,29 @@ go build ./cmd/dtnd
6468

6569
### dtnd
6670
`dtnd` is a delay-tolerant networking daemon.
67-
It represents a node inside the network and is able to transmit, receive and forward bundles to other nodes.
68-
A node's neighbors may be specified in the configuration or detected within the local network through a peer discovery.
71+
It acts as a node in the network and can transmit, receive and forward bundles to other nodes.
72+
A node's neighbours may be specified in the configuration or detected within the local network through a peer discovery.
6973
Bundles might be sent and received through a REST-like web interface.
70-
The features and their configuration is described inside the provided example [`configuration.toml`][dtnd-configuration].
74+
The features and configuration are described inside the provided example [`configuration.toml`][dtnd-configuration].
7175

7276
#### REST API / WebSocket API
73-
Different interfaces are provided to allow communication from external programs with `dtnd`.
77+
We provide different interfaces to allow communication from external programs with `dtnd`.
7478
More precisely: a REST API and a WebSocket API.
7579

76-
The simpler REST API allows a client to register itself with an address, receive bundles and create / dispatch new ones.
77-
This is made by POSTing JSON objects to `dtnd`'s RESTful HTTP server.
78-
The endpoints and structure of the JSON objects are described in the [documentation][godoc] for the `github.com/dtn7/dtn7-go/agent.RestAgent` type.
80+
The simpler REST API allows a client to register itself with an address, receive bundles and create/dispatch new ones simply by POSTing JSON objects to `dtnd`'s RESTful HTTP server.
81+
The endpoints and structure of the JSON objects are described in the [documentation][PkgGoDev] for the `github.com/dtn7/dtn7-go/agent.RestAgent` type.
7982

80-
However, a bidirectional communication is possible via the WebSocket API.
83+
If you need bidirectional communication, you can use the WebSocket API.
8184
This API sends CBOR-encoded messages.
82-
The details can be found in the `ws_agent`-files of the `agent` package.
85+
For details, see the `ws_agent`-files of the `agent` package.
8386
But one can also simply use it with the `github.com/dtn7/dtn7-go/agent.WebSocketAgentConnector`, which implements a client.
8487

8588
### dtn-tool
86-
A ready-to-use program that utilizes the WebSocket API mentioned above is `dtn-tool`, a _swiss army knife_ for bundles.
89+
`dtn-tool` is a _swiss army knife_ for bundles and uses the WebSockets API.
8790

8891
It allows the simple creation of new bundles, written to a file or the stdout.
89-
Furthermore, one can print out bundles as a human / script readable JSON object.
90-
To exchange bundles, `dtn-tool` might _watch_ a directory and send all new bundle files to the corresponding `dtnd` instance.
92+
Furthermore, one can print out bundles as a human/machine-readable JSON object.
93+
To exchange bundles, `dtn-tool` may _watch_ a directory and send all new bundle files to the corresponding `dtnd` instance.
9194
In the same way, incoming bundles from `dtnd` are stored in this directory.
9295

9396
```
@@ -114,28 +117,28 @@ Usage of ./dtn-tool create|exchange|ping|show:
114117

115118

116119
## Go Library
117-
Multiple parts of this software are usable as a Go library.
118-
Those libraries are available within the `pkg` directory.
120+
Most components of this software are usable as a Go library.
121+
Those libraries are available within the `pkg`-directory.
119122

120-
For example, the `bpv7` package contains code for bundle modification, serialization and deserialization and would most likely the most interesting part.
121-
If you are interested in working with this code, check out the [documentation][godoc].
123+
For example, the `bpv7`-package contains code for bundle modification, serialization and deserialization and would most likely be the most interesting part.
124+
If you are interested in working with this code, check out the [documentation][PkgGoDev].
122125

123126

124127
## Contributing
125-
Contributions will receive warmhearted welcome.
128+
We warmly welcome any contribution.
126129

127-
[Gofmt][gofmt] must be used for formatting the source.
128-
Further inspection of the code via [golangci-lint][golangci-lint] is highly recommended.
130+
Please format your code using [Gofmt][gofmt].
131+
Further inspection of the code via [golangci-lint][golangci-lint] is highly recommended, our CI-pipeline includes a `golangci-lint`-action.
129132

130-
As a development environment you may, of course, use whatever you personally like best.
131-
However, we have had good experience with [GoLand][goland], especially because of the size of the project.
133+
As a development environment, you may, of course, use whatever you personally like best.
134+
However, we have had a good experience with [GoLand][goland], especially because of the size of the project.
132135

133136
Assuming you have a supported version of the [Go programming language][golang] installed, just clone the repository and install the dependencies as documented in the _Installation, From Source_ section above.
134137

135-
Please document your changes both in good commit messages and within the [CHANGELOG.md][CHANGELOG.md] file.
138+
Please document your changes in your commit messages and the [CHANGELOG.md][CHANGELOG.md] file.
136139

137-
Also, an attempt is made to be [REUSE][reuse] compliant.
138-
For automatic copyright header generation, the `contrib/reuse/reuse-headers.py` script exists.
140+
Also, we attempt to be [REUSE][reuse] compliant.
141+
You can use the `contrib/reuse/reuse-headers.py`-script for automatic copyright header generation.
139142

140143
### OS-specific
141144
#### macOS
@@ -145,7 +148,7 @@ Installing the [Go programming language][golang] via [brew][brew], should solve
145148
## License
146149

147150
This project's code is licensed under the [GNU General Public License version 3 (_GPL-3.0-or-later_)][license-gpl3].
148-
To simplify the copyright stuff, the [REUSE][reuse] tool is used.
151+
We use the [REUSE][reuse]-tool to simplify the copyright stuff.
149152

150153

151154
[CHANGELOG.md]: CHANGELOG.md
@@ -157,7 +160,7 @@ To simplify the copyright stuff, the [REUSE][reuse] tool is used.
157160
[dtn-mtcpcl-01]: https://tools.ietf.org/html/draft-ietf-dtn-mtcpcl-01
158161
[dtn-tcpcl-23]: https://tools.ietf.org/html/draft-ietf-dtn-tcpclv4-23
159162
[dtnd-configuration]: https://github.com/dtn7/dtn7-go/blob/master/cmd/dtnd/configuration.toml
160-
[godoc]: https://godoc.org/github.com/dtn7/dtn7-go
163+
[PkgGoDev]: https://pkg.go.dev/github.com/dtn7/dtn7-go
161164
[gofmt]: https://blog.golang.org/gofmt
162165
[goland]: https://www.jetbrains.com/go/
163166
[golang]: https://golang.org/

0 commit comments

Comments
 (0)