Skip to content

Commit

Permalink
update application documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
JordiSubira committed Sep 17, 2024
1 parent 893cb29 commit 5c573ab
Show file tree
Hide file tree
Showing 7 changed files with 121 additions and 0 deletions.
56 changes: 56 additions & 0 deletions doc/applications/access.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
Access and Host Configuration
=============================

To use any of the SCION applications, you must have access to a SCION network and have a SCION endhost stack installed on your host.
We assume that the SCION daemon runs on the default address. Otherwise, you must specify the address of the SCION daemon to which you want to attach the application, using the `SCION_DAEMON_ADDRESS` environment variable, e.g.:

.. code-block:: console
export SCION_DAEMON_ADDRESS=127.0.0.1:30255
SCION production network
------------------------
The SCION production network is a global real-wordl network that provides secure and reliable communication.

In order to access the SCION production network, your network provider must have enabled SCION connectivity for your host, e.g.:
- You are a customer of an ISP that provides SCION connectivity.
- Your university or reasearch institution provides SCION connectivity as part of the SCIERA ISD (see `https://sciera.readthedocs.io/en/latest/index.html`).

**Preferred Host configuration**

The easiest way to install and configure the SCION endhost stack is to use the `SCION endhost installer<https://sciera.readthedocs.io/en/latest/services/scion-host.html>`_.

**Alternative Linux host configuration**

If your network provider does not provide a SCION bootstrapper service, you can manually install the debian packages (see `SCION Installation<https://docs.scion.org/en/latest/manuals/install.html#installation>`).
Additionally, you will require a valid configuration from your network provider consisting of `/etc/scion/topology.json` and `/etc/scion/hosts)`.

**Alternative macOS host configuration**

Homebrew support will be added in the future.
For now, you can build the SCION endhost stack from source (see `SCION Build<https://docs.scion.org/en/latest/dev/build.html#build>`).
Depending where you compile the binaries, you may need to specify and `GOOS=darwin` and `GOARCH=amd64` (or your target architecture).

**Alternative Windows host configuration**

You can build the SCION endhost stack from source (see `SCION Build<https://docs.scion.org/en/latest/dev/build.html#build>`).
Depending where you compile the binaries, you may need to specify and `GOOS=windows` and `GOARCH=amd64` (or your target architecture).

SCIONLab network
----------------
The SCIONLab network is a global testbed (not production) that runs as SCION as an overlay network protocol.
It is used for experimental purposes, altough one can deploy real applications on it.
It is free to use and open to everyone, but one cannot expect the same level of reliability, performance and security as the SCION production network.

In order to access the SCIONLab network, you must have a SCIONLab account and have set up a SCIONLab node (see `https://docs.scionlab.org/`).
The SCIONLab node already comes with a SCION endhost stack, meaning that you can run SCION applications directly on the node.
Otherwise, you can use the SCION endhost installer to install the SCION endhost stack on your host and connect to the SCIONLab node. You can follow the instructions in `SCION production network` adapting the configuration accordingly.


Local SCION network for development
-----------------------------------
To set up a local SCION network for development, you must have a development environment set up (see `https://docs.scion.org/en/latest/dev/setup.html`).
If you have a running development environment, you can run the SCION applications on your host.
You need to specify the address of the SCION daemon to which you want to attach the application, using the `SCION_DAEMON_ADDRESS` environment variable.
The different sciond addresses can be found in their corresponding sd.toml configuration files in the gen/ASx directory.

6 changes: 6 additions & 0 deletions doc/applications/bittorrent.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
BitTorrent over SCION
=======================================

The BitTorrent over SCION application is a modified BitTorrent client that uses QUIC over SCION as transport protocol.

More information is available here: https://docs.scionlab.org/content/apps/bittorrent.html
6 changes: 6 additions & 0 deletions doc/applications/browser.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
SCION Browser Extension
=======================================

The SCION Browser extension provides access to HTTP(S) resources via SCION by using skip as configured proxy for all SCION-enabled domains.

More information is available here: https://docs.scionlab.org/content/apps/scion-browser.html
3 changes: 3 additions & 0 deletions doc/applications/echoscion.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Packet Inspector
================================
Send a SCION packet to a specific address and see the path your packet has taken, as well as the contents of your packet. An easy-to-use debugging tool available here: https://echoscion.ddns.net/
6 changes: 6 additions & 0 deletions doc/applications/hercules.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Hercules
=======================================

Hercules enables high-speed file transfer over the SCION network. Start a file transfer now, or set up your own Hercules server.

More information is available here: https://github.com/netsec-ethz/hercules
26 changes: 26 additions & 0 deletions doc/applications/ipfs.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
IPFS over SCION
=======================================

To benefit from SCION's security and reliability improvements compared to the traditional Internet, we are working on an `IPFS <https://github.com/ipfs/kubo>`_ implementation with SCION support.

The SCION Education Network will soon run some IPFS nodes including some content, and share the node addresses.

To setup IPFS over SCION on your node, follow these instructions. At first, download the proper binary from our `releases site <https://github.com/netsys-lab/sciera-releases/tree/main/ipfs/latest>`_.

Start some nodes by replacing {ISD-AS} with your ISD-AS combination and {IP} with your local IP (must be reachable within your SCION AS).
.. code-block:: console
cd kubo
mkdir ~/node1
IPFS_PATH=~/node1 cmd/ipfs/ipfs init -p test
IPFS_PATH=~/node1 cmd/ipfs/ipfs config --json Addresses.Swarm '["/scion/{ISD-AS},[{IP}]/udp/0/quic"]'
IPFS_PATH=~/node1 cmd/ipfs/ipfs config --json Swarm.Transports.Network '{"QUIC": false, "SCIONQUIC": true}'
IPFS_PATH=~/node1 cmd/ipfs/ipfs daemon --debug
Connect nodes
.. code-block:: console
cd kubo
IPFS_PATH=~/node1 cmd/ipfs/ipfs swarm connect `IPFS_PATH=~/node2 cmd/ipfs/ipfs id -f="<addrs>"`
```

As soon as all of our IPFS nodes in the network are running and serving content, we will announce their addresses here. You can then connect to them by replacing <addrs> in the previous command.
18 changes: 18 additions & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,21 @@ Start with the :doc:`dev/contribute` to contribute to the open-source SCION impl
:doc:`dev/testing/index`

* :doc:`dev/design/index`

Applications
^^^^^^^^^^^^
.. toctree::
:maxdepth: 1
:caption: Applications
:hidden:

Access and Host configuration <applications/access>
Browser extension <applications/browser-extension>
Bittorrent <applications/bittorrent>
Echo SCION <applications/echoscion>
Hercules <applications/hercules>
IFPS <applications/ipfs>

Before you can use any of the SCION applications, you must have access to a SCION network and have a SCION endhost stack installed on your host.
Start with :doc:`Access and Host configuration <applications/access>` to learn how to configure your host.

0 comments on commit 5c573ab

Please sign in to comment.