203 releases (38 breaking)

Uses new Rust 2021

0.71.0 Sep 19, 2022
0.69.0 Sep 7, 2022
0.64.3 Jul 12, 2022
0.49.9 Jun 25, 2021
0.25.18 Dec 21, 2020

#664 in Network programming

Download history 97/week @ 2022-06-10 250/week @ 2022-06-17 65/week @ 2022-06-24 232/week @ 2022-07-01 442/week @ 2022-07-08 207/week @ 2022-07-15 620/week @ 2022-07-22 199/week @ 2022-07-29 3/week @ 2022-08-05 35/week @ 2022-08-12 36/week @ 2022-08-19 219/week @ 2022-08-26 73/week @ 2022-09-02 256/week @ 2022-09-09 44/week @ 2022-09-16 15/week @ 2022-09-23

388 downloads per month

GPL-3.0 license

1.5MB
24K SLoC

sn_node

The Safe Network Node Implementation.

Building

OpenTelemetry Protocol (OTLP)

OTLP allows for inspecting and visualizing log spans.

By specifying the otlp feature for the sn_node binary, logs will be sent to an OTLP endpoint. This endpoint can be configured by environment variables. (See opentelemetry.io/docs/... for more information.)

export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" # Already the default
export RUST_LOG=sn_node=info # This filters the output for stdout/files, not OTLP
export RUST_LOG_OTLP=sn_node=trace # This filters what is sent to OTLP endpoint 
cargo run --release --bin sn_node --features otlp -- --first --skip-auto-port-forwarding --local-addr=127.0.0.1:0

Before running the node, an OTLP endpoint should be available. An example of an OTLP-supporting endpoint is Jaeger, which can be launched with Docker like this (see documentation):

docker run --name jaeger \
  -e COLLECTOR_OTLP_ENABLED=true \
  -p 16686:16686 \
  -p 4317:4317 \
  -p 4318:4318 \
  jaegertracing/all-in-one:1.36

In the web interface of Jaeger (http://localhost:16686) one can filter several things, e.g. the tag service.instance.id=<PID>, where PID is the process ID of the node. The service name is sn_node.

License

This Safe Network repository is licensed under the General Public License (GPL), version 3 (LICENSE http://www.gnu.org/licenses/gpl-3.0.en.html).

Linking exception

safe_network is licensed under GPLv3 with linking exception. This means you can link to and use the library from any program, proprietary or open source; paid or gratis. However, if you modify safe_network, you must distribute the source to your modified version under the terms of the GPLv3.

See the LICENSE file for more details.

Contributing

Want to contribute? Great 🎉

There are many ways to give back to the project, whether it be writing new code, fixing bugs, or just reporting errors. All forms of contributions are encouraged!

For instructions on how to contribute, see our Guide to contributing.

Dependencies

~58MB
~1M SLoC