Skip to content

InstantWebP2P/appnet.link-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0fd85c0 · Oct 2, 2024
Mar 26, 2023
May 12, 2020
May 9, 2020
Feb 27, 2020
Mar 29, 2020
Jul 6, 2020
May 12, 2020
Mar 26, 2023
May 16, 2020
Apr 1, 2020
Mar 11, 2020
May 9, 2020
May 9, 2020
May 11, 2020
Jul 3, 2020
Oct 2, 2024
Mar 17, 2020
May 9, 2020
May 9, 2020
May 9, 2020
May 12, 2020
May 9, 2020
Jul 1, 2020
Aug 18, 2020
May 12, 2020
Mar 20, 2020
Mar 11, 2020
Sep 21, 2024
Sep 21, 2024
Apr 1, 2020
Apr 1, 2020
Apr 1, 2020
May 3, 2020
Jul 22, 2020
Jul 22, 2020
May 9, 2020

Repository files navigation

appnet.link-controller

AppNet.Link controller services to support AppNet.link protocol

1. Prerequisites

  • Build Neo4j 2.1.8 on Linux with Docker, then start Neo4j services

    ./neo4jpkg
    
  • Copy Neo4j packages out of Docker image to local

    ./neo4jpkg cp -rf /tmp/*.tar* .
    

2. Install

2.1 Install stand-alone

  • appnet.link-controller depends on nodejs-httpp, please build it from nodejs-httpp

  • clone this repo and install dependency modules

    npm i
    
  • generate SSL certs once for your own Domain Name, like

    ./tools/genSrvKey.bash 51dese.com

  • start controller services

    ~/nodejs-httpp/node ./bin/srv.js

  • now ready to serve appnet.link client

2.2 Install on Linux with Docker

  • Build nodejs-httpp docker images, refer to nodejs-httpp

  • Clone this repo

  • Install dependency modules

    ./appbld npm i
    
  • Generate SSL certs once for your own Domain Name, like

    ./appbld ./tools/genSrvKey.bash 51dese.com
    
  • Packaging and start services

    ./apppkg 
    
    Start services ...
    name-server-0 listen on udp port 51686
    name-server-1 listen on udp port 51868
    agent-server listen on udp port 51866
    httpp proxy-server listen on udp port 51688
    http proxy-server listen on tcp port 51688
    
  • Testing service if start successfully

    ./apppkg node tests/connection.js 
    
    node tests/connection.js ...
    connecting to alternative name-server successfully
    connecting to primary name-server successfully
    

Code structure

* sdp.js                 - Session Desription implementation
* stun.js                - STUN protcol implementation
* turn.js                - TURN protocl implementation
* db/sdp.js.             - Session data model persistent in GraphDB
* vurl.js.               - Virtual URL implementation

* appnet.link-server.js    - AppNet.link protocol controller implementation
* appnet.link-server-v2.js - AppNet.link protocol controller V2 implementation using SecureWebsocket and NaclCert

* ssl.js                 - SSL/RSA certs generate utils
* demos/                 - demos
* ca-certs               - your own Root CA certs
* certs                  - dynamical generated SSL/RSA certs for connections
* routepath.js           - pure JS tracerouter implementation using UDP/TTL probe. TBD

More demos:

Look on demos/

TODO:

  • User authentication
  • Domain authorization
  • Improve documents, Protocol Spec, RFC draft
  • Cluster implementation based on Raft consensus protocol

Support us

  • Welcome contributing on document, codes, tests and issues

License

(The MIT License)

Copyright (c) 2012-present Tom Zhou(appnet.link@gmail.com)