Difference between revisions of "Networking"

From Internet Computer Wiki
Jump to: navigation, search
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The page contains technical content relevant for the scope of the networking team.
+
The page contains technical content relevant for the scope of the application level networking components.
  
== Networking adapters ==
+
== HTTP(s) Endpoints ==
Networking adapters are processes on the ReplicaOS that run next to the main replica process and can issue outgoing calls to the internet. The intent of an adapter is to serve as proxy which sanitises data received externally. They are used by [[Bitcoin integration]] and [[HTTPS outcalls]] features. <br>
+
 
 +
Documentation about replica components that open listening sockets, so NNS managed nodes can
 +
communicate with replica nodes can be found in [https://gitlab.com/dfinity-lab/public/ic/-/tree/master/rs/http_endpoints rs/http_endpoints/README.adoc]
 +
 
 +
== Networking Adapters ==
 +
Networking adapters are processes on the ReplicaOS that run next to the main replica process and can issue outgoing calls to the internet. The intent of an adapter is to serve as proxy which sanitises data received externally. Networking adapters are used by [[Bitcoin integration]] and [[HTTPS outcalls]] features. <br>
 
The main replica process uses [https://docs.rs/tonic/latest/tonic/transport/index.html gRPC] for communicating with the co-located adapters via Unix domain sockets.
 
The main replica process uses [https://docs.rs/tonic/latest/tonic/transport/index.html gRPC] for communicating with the co-located adapters via Unix domain sockets.
 +
 +
== NNS Managed Firewall Configuration ==
 +
 +
The IC uses [https://en.wikipedia.org/wiki/Nftables nftables] to restrict outgoing and incoming connectios on each IC node. The registry contains relevant topology information which the IC uses to derive nftables rules.
  
 
== Rust ==
 
== Rust ==
  
 
=== Crates ===
 
=== Crates ===
[https://docs.rs/tokio/latest/tokio/ tokio], [https://docs.rs/tower/latest/tower/ tower], [https://docs.rs/hyper/latest/hyper/ hyper], [https://docs.rs/tonic/latest/tonic/ tonic]
+
The following crates are heavily used by the networking components<br>
 +
[https://docs.rs/tokio/latest/tokio/ tokio], [https://docs.rs/tower/latest/tower/ tower], [https://docs.rs/hyper/latest/hyper/ hyper], [https://docs.rs/tonic/latest/tonic/ tonic]
 +
 
 +
==See Also==
 +
* '''The Internet Computer project website (hosted on the IC): [https://internetcomputer.org/ internetcomputer.org]'''

Latest revision as of 20:02, 23 January 2023

The page contains technical content relevant for the scope of the application level networking components.

HTTP(s) Endpoints

Documentation about replica components that open listening sockets, so NNS managed nodes can communicate with replica nodes can be found in rs/http_endpoints/README.adoc

Networking Adapters

Networking adapters are processes on the ReplicaOS that run next to the main replica process and can issue outgoing calls to the internet. The intent of an adapter is to serve as proxy which sanitises data received externally. Networking adapters are used by Bitcoin integration and HTTPS outcalls features.
The main replica process uses gRPC for communicating with the co-located adapters via Unix domain sockets.

NNS Managed Firewall Configuration

The IC uses nftables to restrict outgoing and incoming connectios on each IC node. The registry contains relevant topology information which the IC uses to derive nftables rules.

Rust

Crates

The following crates are heavily used by the networking components

tokio, tower, hyper, tonic

See Also