• Stars
    star
    146
  • Rank 252,769 (Top 5 %)
  • Language
    Go
  • Created over 1 year ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Censorship tests for the Nym network

Censorship Measurement of the Nym network

OONI-Probe tests for the Nym network

This repository introduces a new type of Go test for Nym network censorship. Our tests are performed using the OONI probe.

  • First, the test evaluates the connectivity to the to the validator API, which is a necessary step to allow users access to the Nym network, as it allows the Nym client to retrieve vital information such as the list of active relay nodes, gateways, their topology, and the necessary credentials for network access.
  • After successfully fetching the list of available gateways in the initial test, a second test is conducted to determine the reachability of these gateways. Since the Nym network topology mandates that packets are routed through a gateway before entering the mixnet, being able to connect to at least one gateway is crucial for network access. To assess this, the test attempts to establish connections with each gateway individually.

Requirements

To be able able to run the tests, you should have docker and docker-compose installed. You can follow this procedure to install docker desktop which contains docker and docker-compose and a GUI to manage docker. Once installed and running, you can run the docker tests.

How to run the tests ?

From the command line, enter the CensorshipMeasurements folder by running the command

  cd CensorshipMeasurements

and run in the command line (note, your Docker desktop app should be open at this point)

docker-compose up

By using docker-compose, it will build the image, install the requirements inside the image, compile the binaries for the test and run the test. The result will be in the directory ./results in file report.jsonl.

To force to build again each time, you can do

docker-compose up --build

Please share your report.jsonl with us.

Licensing and copyright information

This program is available as open source under the terms of the Apache 2.0 license.

Troubleshooting

If you run docker-compose up and get an error:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

this means that you forgot to open your Docker desktop app.

Notes

The environment variable OONI_NYMVALIDATORURL can be used to modify the validator server to reach for the tests. By default, it is "https://validators.nymtech.net".

OONI_NYMVALIDATORURL="https://validators.nymtech.net" docker-compose up

More Repositories

1

nym

Nym provides strong network-level privacy against sophisticated end-to-end attackers, and anonymous transactions using blinded, re-randomizable, decentralized credentials.
Rust
1,265
star
2

sphinx

A Sphinx implementation in Rust
Rust
271
star
3

developer-tutorials

Repo storing the finished code for Nym Developer Tutorials
Rust
192
star
4

nyxd

Fork of https://github.com/CosmWasm/wasmd for Nyx validators
Go
180
star
5

tauri_lib

tauri lib poc
TypeScript
90
star
6

ephemera

Rust
83
star
7

bdjuno

A fork of https://github.com/forbole/bdjuno for the Nyx blockchain
Go
77
star
8

ci-playground

A playground for testing CI/CD jobs with GitHub Actions
56
star
9

docs

Nym Mixnet Software Docs built with mdBook
CSS
50
star
10

nym-vpn-client

The NymVPN client apps for desktop and mobile
Swift
49
star
11

coconut

Implementations of the Coconut signing scheme, cross-compatible between Rust and Go.
Go
30
star
12

nym-mixnet

[Note: Deprecated!] Anonymous packet-based messaging using mix networks, based on Loopix and Sphinx
Go
27
star
13

helios-nym

An experimental fork of a16z's Helios Ethereum client which can run its network traffic over the Nym mixnet
Rust
19
star
14

rewardsharing-simulator

A simulator for the reward mechanism of the Nym network.
Python
14
star
15

nym-metrics-server

A metrics server showing mixnode mixing performance in near-realtime.
Go
13
star
16

node-status-api

An API to track uptime for Nym nodes
Go
13
star
17

dev-portal

Developer Portal mdbook content
CSS
11
star
18

nym-web-dashboard

Web dashboard showing an overview of Nym network functioning
HTML
9
star
19

fdroid

F-Droid repository for Nym apps.
Go
9
star
20

nym-vpn-android

The NymVPN client app for Android
Kotlin
8
star
21

bity-interface

Nym exchange interface
CSS
8
star
22

sphinx-bench

Quick benchmark (perf) scripts for our Sphinx implementation
Rust
8
star
23

demo-mixnet-electron-chat

Shows you how to use the Nym mixnet from any language using network sockets
TypeScript
8
star
24

service-grants

Application repository for Nym service grants
7
star
25

network-requester-connectivity-check

A script to check the daily connection uptime for NymConnect network requesters
JavaScript
7
star
26

qt-validator-client-demo

A primitivist QT client that can exercise the Nym validators
QML
6
star
27

demo-mixnet-chat-client

A simple chat client which sends its traffic through the nym-mixnet.
Go
6
star
28

cosmwasm-state-testing

A set of utility mocks for operating on cosmwasm contract state dumps
6
star
29

ledger-covid-passport

Private COVID Certificate (PCC) - A Coconut Prototype
TypeScript
6
star
30

team-triage

This repo holds issues that are used to triage problems raised in our social channels. It has no code in it, only issues.
4
star
31

odoo-crypto-addons

Python
4
star
32

nym-zcash-grpc-demo

An initial demo of interacting with a lightwalletd node via gRPC over the Nym mixnet.
Rust
1
star
33

nym-vpn-mullvad-libs

Rust
1
star