http-proxy
http-proxy copied to clipboard
Proof of concept implementation of the IC HTTP Gateway Protocol that enables end-to-end secure connections with dApps being served from the internet computer.
IC HTTP Proxy
This application is currently only a proof of concept implementation and should be used at your own risk.
Overview
An implementation of the IC HTTP Gateway Protocol that enables end-to-end secure connections with dApps being served from the Internet Computer.
Motivation and Goals
-
Local alternative that implements the HTTP Gateway Protocol
-
Perform response verification
-
Censorship resistance
-
Enable crypto domains
Key Features
-
Translates between IC API calls and HTTP Asset Requests
-
Terminates TLS connection locally with self Root Authority
-
Detects IC domains from principals and custom domain DNS records
-
Bypasses remote gateway denylists
-
Resolves crypto domains
Supported Platforms
-
Windows
-
MacOSX
-
Debian
Other platforms can also be supported by adding the generated root certificate to the device trusted store and adding the proxy HTTP server to the active network interface configuration.
Contributing
No external code contributions.
Setup
The package manager of this monorepo is yarn and the applications are built for nodejs. The usage of nvm is recommended to keep the node version in sync.
Setting up dependencies
The following steps can be used to setup the proxy for local development and to package it to your system architecture.
This will setup yarn with the latest stable release.
corepack enable
corepack prepare [email protected] --activate
Yarn can also be enabled through npm
.
npm install --global yarn
yarn set version 3.5.0
All dependencies can be installed with a single install command from the root of the monorepo.
yarn install
A recursive build is triggered for all of the monorepo
packages.
yarn build
Produces the required binaries and installation bundles for the supported platforms.
yarn pkg
The proxy graphical interface is started and added to the operating system menubar.
yarn start
Packages
This monorepo has multiple locally maintained packages in the root package.json configuration.