{"_id":"@ringsnetwork/rings-node","_rev":"61-cc26e75ff3a6b18a363a3ae9720e75a3","name":"@ringsnetwork/rings-node","dist-tags":{"latest":"0.2.1","dev":"0.2.5-dev-20230614.2","bundler":"0.2.5-bundler-20230426.0","web":"0.2.5-web-20230426.0","no-modules":"0.2.5-no-modules-20230426.0","nodejs":"0.2.5-nodejs-20230426.0"},"versions":{"0.2.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"gitHead":"4d6ec01bb8f6cb1e58ee70acf1cfad4c4e4e582a","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.0","_nodeVersion":"18.5.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-ZE8ZfeLEeZk4YtGdQDRM58eBwL1CTaB9AIqljGoBeohNuJF8VhYaIZw1fXiuiLBFYM9pI65ubUoqZq7vJytKQg==","shasum":"0d2b5624862ac209f5d1fd79d7e12f534f5c795e","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.0.tgz","fileCount":7,"unpackedSize":2770608,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEc7jHroSzns6MysQN+iGmRTfAcLGnuplfkv6OYN6EknAiEA3j20edH6zYfNuKkmIvOCEcZ9vablpwN58O3x1gOJVcY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizmgcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/Jw/+LKXPcqnLtMZCq/ymCFemx+5IqvNXs78IoepPWvS3wrsJYMXR\r\neBBYQwFhlo2HxRJ7bzVXpW8mBewmcUGbYBk7v+yoFGkR3Lp0iDM7GXu0jSZH\r\nbDiaJsLd7cvR3iOKlJ0uFQqWik39ctY0quUxTAYUDENdWY34kIpKghnj34Ae\r\nc4w1FYOII0/tjatGcGKLkXChAtq94u0nT5hXOl3hdtOdYfj1Kf80qVQpm3Vi\r\nTvix8VfdQk3/GIAoBMb3sKKyu0aQObi+bJqHcrE64HLmK8O+K3kPXWvPVW86\r\nVvh729RE0a3GhK9DzNXuyHL/xzvvvRID/3fuuSDbypNn4d/cL76BrlBAJ4q3\r\nIuoLr4gHqcGV1gzi9MDEfzd79Jspo67ttn51cQnz1q3PEJZE6XL4M9g8jYqD\r\nZvcPIs1xoMEhsNp8/elmJ0La7mPX1w6lukktTNgcJDXQJ/edsFDUg0fuQVE9\r\nY6ypf+8NIrHS9l26ixkoW380c3lYFSWQNRzBZ1BuXm1cQ7Ynf1S6VgcWrH/U\r\ntnfO5q7+NsIZ847TWTfJWkOyhvLWb8KWCDB3KczT7Q0g7aPIccAHXbn2H6SS\r\nxIP42eDivi0Rb8K5Zdvyv2aWK3dhY/I4VkfSpiITlpFZgwyOCxVi2Gn3bo7v\r\nnvEkVooIN91q6HnxM0L1Jp1zzGIOIljS2g8=\r\n=YbT/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.0_1657694235899_0.8506905474661859"},"_hasShrinkwrap":false},"0.2.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"gitHead":"4d6ec01bb8f6cb1e58ee70acf1cfad4c4e4e582a","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1","_nodeVersion":"18.5.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-lsC9q//IPbWfLmrrX3QO9k7MWJVwunIZDf6BdrvOx5f6MBcmbKdpWgJEJdL2UCcabCsRtZ1F8zFcmx8zf4GrMA==","shasum":"85dfc75103971c36a48c015155a7c51362c32aa5","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1.tgz","fileCount":6,"unpackedSize":2777560,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIANx9DHVvuhHsYJwUPKbWbZkWwO48P92qOfh/SfX7eqBAiEA4ptV615rXrqosh4XdsidQfiWxrUE8grEdCrOjFmIjeI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJizm0dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBkQ/9FpD+GUXSVb+nLG7E9qPOYJpP8+YcX2x5xQo3+i91/wbiCW3J\r\nvBKEuARnxz0QmgNLWIafvX29crzCg/BQxatQyEOFDryFJojUlmlXOVEFhr7A\r\nQMfKwTmGTwDNNSv1xdA+Doi6BZzn/cdqHb0Q/zRhoSldr1BCnTM8AC7oPvg4\r\nWYPhLr0js+W6kjV4qEovOU8zBdnlECeEdn6QruC8b2z60G9YJbsoOqDE1pKo\r\nG3Qzo/WJnZkXiqz4eGxEiYxhPjhp2ny1WIMSEazk0DmKHuXtg/qXC8ysGhqH\r\nvAAOlHu5rg1QOn+dGpZPgGRizT2vbG8KwQYMlBSusnJsgW7MKOwGX9og1kqL\r\nqvj65utc7VYhEYeqy8551nc8Etcuxd+M/DExnnSoc2ECyf8S+BlkrNSID6bk\r\nKtP1khP2vz4UhGhLg+Qn30R4z0d9azHA9wNbipl1uPUospCIPYuAoh8d87Ci\r\nYvcu74z+lNe9dUEhiEDs9ZdrxoXRif3SwL6fZVwbQjk4FIvG/XwfZ1dgyuR/\r\n5IoZvShn1M0usHX9UF5mn9DM3YLIfmvvNMbdTKY9opaRnt9XeFc01BzVji3S\r\nW2vUOQEUVDgnJx5kZ8WKjh+1eb6B+bY291FU/nXm3UScyGRM0D8hN5BOWLa9\r\nBqN8gtjYEmsi+iRglwAMoqD8+2BBFXeXmbg=\r\n=E6aO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1_1657695517267_0.07106481633984019"},"_hasShrinkwrap":false},"0.2.0-dev-20220721.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.0-dev-20220721.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"2fd06fa10ae49976e070abe848697dea8ebc29f5","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.0-dev-20220721.0","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-ZA38Ld6w8yNIgSJGCSzlh9PGf9R+x5wuVcQd5MP7RIeSeW4AxKrHlHxOV0h1D6LyWN9dcLhwSnvtvTSRMTsgpg==","shasum":"3eccb95afd818c7678e014624d3df6dabeea57ab","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.0-dev-20220721.0.tgz","fileCount":6,"unpackedSize":2796284,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHlS8pllLRQKbZAZigSDrGmNOph/o8iXtnhacdDpAqQOAiEA+iDL7E3/ERLdRn0zDIliwLplChIS6NAWl4BRjFbqA58="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2dG5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo59xAAkeQ9zVZwr7NdvH35R9zNtIr7UGhhbgNsl8G8oXquYYkk0P1y\r\n/u1Y15/kcJkgL7VCM1bAU9ti2CoX4XcyKDgCLNij5J8QvSC2q5AxRmpqGBKU\r\nRuz/fYdvWNiFVSUixPDbf/TzQIG2o2jom6eGghjOGJdx7bLBHGY2KmhYRvni\r\nCjnlMh9oRri2DMiB0ZpBjEbtLwHCG0dv+2yaev9ZhZ26E4LHj1mfduCs8TiZ\r\nF8nPKk27a5+VsBJgjPMhocqdVFupYjlHKABQ0IKIOSSkF0ddz2MpiVMlHfwp\r\n0tmMTZK2gGL9v5tG+NYGXxFOSn7EYn7pAILRdZqaG4QL7A+xNMr0/7yFbq3P\r\nRYDuvJiYHHtRGHF5FC0e5hmBG7wX877bHhIZL9MolNYo3D9f50OaLt2CXpZ+\r\nECnvsAwCbCGlLcgUesvNljdCcvxeGsXMAfx8CTmNjOvZNvGRkhsMP3o3FG7R\r\nFGoZbmsyQsRiT0FuV9DgUZLmbHCeqHjrmhOffXZJhRZT+xYLii43d/vLs9lB\r\nR1uzgNq3jf4Kgtxox+01krOjDYJkpKDdQjbSNk0VLAMMGf1fS0AiPSyygR8Z\r\nSp8HU/q9DRSrLvzAbtXqDNvJHKE4bsnQ5VegbvvimFU0+LP7ctYBcWyxyoM9\r\n5e1hjNcBIkg3tC5XekQzPTCjKL/OJH7jB90=\r\n=PqCI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.0-dev-20220721.0_1658442169549_0.6817138744020466"},"_hasShrinkwrap":false},"0.2.0-dev-20220722.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.0-dev-20220722.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"91e7e12f21c3b0ce521d7dc35179e5f9db3431b3","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.0-dev-20220722.0","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-I8yC1VCvMUrSgf2iz63lc9vy+/WAbxKlZafzXKonfW1uamuMPxXh6Yc/TAWFjwhRJZKPnJMAOQeSC7MjbQl2/w==","shasum":"7bbf91fbefaaa021e59453fb2d2a526964143d8c","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.0-dev-20220722.0.tgz","fileCount":6,"unpackedSize":2795504,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFPsarF/jI7fnNgsXFJ9tOt9L8JMQd7wK0cfuaC61cGaAiB9sgEi4IjTGPuXsqbT8jozSXMEP3Ljbm4WLmbtFUq2ag=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2o3tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq2sw/8CNGdKIUrxTXH+GGE6aqbmqZok+BLoKIF77zIzTU7hEKb/465\r\n4N0ZXygWxl15CFD3rIQZmAHIMQwFFA3RscxqzAjyOV+xTedIwtSSRteYu1+Z\r\n3YbZrqWbiLfpuFUKr8OMPmTNIqR1ItMfH6je4fRdmkqiF70iWZDwzE4SHATa\r\nXGoUk6klCaOFJOOZKJOv/az6lKVB8xKrDxOxYruum8xce90PsEauXDmFZZLd\r\nSrBok96G9Q2MXQMT4OYObGpvReWHXwh7fRkF/S6gin3dps0sua5nM4KvB802\r\nnfVun+5iHC4HJLGi2RAs0H8RfyWd6vi64gWz0oiGUXRn3kYNtxLYXJWGs66k\r\nHMvdG2nGfHCPYi+gWX2+cecdYziXnqYE+VGLHTd6Qb8ieZdag6RURj5yWmtz\r\nFZNqGhGJDK3gmiT/Gzi4+JVSD/w9E+5p6Y72X2cw20RkJgZEto96BReXD6F+\r\n8VzolkK1s21ehvkzVTTfbYJ44cqKv1iq4XgHVnPA4gOWlQiXv7xbuhOJRCNw\r\nK/krDnSppgguRPjPGxwdVsrTICC3jv07jDIpEIKi1gwgcn4S7/mc7Xj2A852\r\nX/VR0YlOv2X6dSTwKWHZo/gEE7MZeyqXUiyGbFpij3lpxrYAzUre98ruqnWJ\r\nsMltnqqyBvmi2AUWbz0FXD2UNazRWmxziIk=\r\n=f0Gw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.0-dev-20220722.0_1658490349667_0.8064432503052559"},"_hasShrinkwrap":false},"0.2.0-dev-20220722.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.0-dev-20220722.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"decd5b7142debc0d824a36cf356c369161c920e6","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.0-dev-20220722.1","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-SpxkPZD4NYUhyrOAoDE9vUfLDS7PtytxZnWzHcWUFrJx/yBDW4G/z7z8FEem2nY5AW63NEW/EB7REqbU0cnt/g==","shasum":"d99eee2d7f3c2987228d6673369d2ed418c1db07","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.0-dev-20220722.1.tgz","fileCount":6,"unpackedSize":2805740,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsHB/TiqCM7gDEmfWaDoZype1GOgLmhYcQDz62ZEB/gAiEAzDH7itN8j0GLAkp6j5IdBefR9q+xdpfrKFx510oEY7Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi2yRrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsAw//SOPYJsfwrXmOuK7/DaqaSk8ZdoiMHd4kkI9dF8YXZas5C0Ks\r\nFZ3u0MiCpF0Kuvt2PZshEVxEhmjSTHd3t1peOoSqayNkTUMeyb+x4+gWjv5z\r\niRpC21BmydTc2qHDfN+Lc38HNzqjARQlgQzr8PI0p5mEqn0hqo6rKksJPIdw\r\npIUFEMmzCqSrh018de2ewT5Fz5QnsWLAv8ua2dnbTVfgUl9qwYYXDxGPQg5B\r\n1ZF7Xi4g+pqibsZPK09zRKEPKBfaGahe7ccE/Nt4GS/GP1ndIoxaIwMpjOQ5\r\nqlPrs8MZOvFv7TbuVztzWnkHyjr/3O4dMR/OIez1oeMMNbRdCSfKiM9ZcFCR\r\n5K2Xxqk4J2zwn+Hx5WaDwWRuSOrVxm5IIc6Aq0Sk+XeXshWgiq6XZx/qKNoU\r\nL3F/NIh3PhCoOPcE3yvRgAIoP87Sx1A+nJIv8GEa86DW1ZrLSFK4hCFSM++L\r\nXH7uKhNdimhWI6lxtI3PNH/fXCiWff+ylGcvGO61BAZ2/JgNQ16UbMXzcDLG\r\nh952CKDq7Fo+3WrxYkJhdSwXQTgqI4JOw+wTla+ZNn9g69RfdznfRb1rE2xI\r\nNasTG3Cc8BkBFCnD/xQAvyJdVyVAn++lQR8XXcXbjnWpV0ICbdaHiMKMPRoV\r\npJt1rTKa7jjBRCy/O4BQhlhVquGV5lRbC4g=\r\n=XKt/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.0-dev-20220722.1_1658528875548_0.4350918348145032"},"_hasShrinkwrap":false},"0.2.0-dev-20220726.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.0-dev-20220726.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"68accd32607a6bb88df6804a641caf177b954cce","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.0-dev-20220726.0","_nodeVersion":"18.6.0","_npmVersion":"8.13.2","dist":{"integrity":"sha512-ogvUazbHSTVbOs4s4iVnfXRUDsqaJm3HVPdXx2JWsuKL+Z4vLkVVihnaG+liMnsOQF9Vj6VD73TChq16SvyNDg==","shasum":"785aaab426d79e03d4eda233f74f45c8429dc8b9","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.0-dev-20220726.0.tgz","fileCount":6,"unpackedSize":2806333,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/zBIa15rfX8e76F0HQ52zdL6xPhyMmQYeX3fCxZPetAIgCGWQqXMMloW7PooaqQY4gIy2LCHniijRxcJjBe8YxI8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi34sgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSJw/+IIlZXUK94XfFsQkeCPc7wU/JJUOpKN+Coq5BCGKIKbXEfl2q\r\nlfGtCZdNbbfQSOdpNBhyFaPY1+eQi45YMWGhEx+m08wKUyR0ZgA6e11YNdEl\r\noimK2zBGuHGtYt1cUnxzC20+5XF32tdYGTtB0hNFsw0aTaDkqkQ6U0kpO/oZ\r\nfHO4cFTaiOce1euYS2f8uZpTwQEwmBuWQLdQCNw0Vl6MgOIuFX4DiF9ky5dx\r\nKk2nBL1mZ6M5/WmiDc4qfGOZ9iOmHwiy5UEzVg+mgNgcY7GUg9W5f4XQ9VyI\r\nP1uiokxwkazPIGojoRA6OLxhldqKksq1TCafVwIb6vzI4agbQuUk6eTX4MzY\r\nKtY3nnPwbsmJXAR+LrxIGo3Icm6RhVFZA6QVNA3UzMTiIFFsS85liXPMqQwA\r\njlCmaavTF1SDfPIVdAe9p14U4f7+9tainJEvrHsmvyp71uSwLbRtzopVrgIP\r\n6Lr6f/lgU+gDwAAE7T0Sml5gexojHkOoZKqjYYGGmxUjq6y2HsKdjFfhwzgK\r\na1fK4ZfDH81ZlPAXhtNO4xBubLTHT/uyymLYCnPPkDw/aYQxMLoZ54viWiJJ\r\nOXwLoc+OW+sw6+prqr7v3iiORxg6X3tFg4Rp38dq+1sZu+irDroryWFfPmtN\r\n9dNrQyOYJDm+PKpYZuMQQPHeyv8ViRhkPBU=\r\n=m48L\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.0-dev-20220726.0_1658817311904_0.6338605795817605"},"_hasShrinkwrap":false},"0.2.0-dev-20220729.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.0-dev-20220729.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"3247132066dec72c6fa7c8f590954862ae240d35","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.0-dev-20220729.0","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-wLQqg8i78vJb65k1UOLFQ23qBYI+r0v7CJ5zh5/ylaazoNKj2Qrd1wuyMgdqp0tOL6fsi6kzQAoX0NKCB7ZT9Q==","shasum":"6cee4d785c590f497edd52e97d0a78085e9c7d96","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.0-dev-20220729.0.tgz","fileCount":6,"unpackedSize":2803283,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF0IxdBxHmL4wmoIH+L6NOadhmxPgGuJCvvo/1HozdhvAiEAqEdcMv4rb/IuDAbSvVdUuZANoPUupfJ/sGmw6p8Qmw8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi47pFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpChA//eyvLEKd1+U7elgXHQCT7pNsyZcYRH41hLDXpNM4KPkr87xT3\r\n7cPXupQTGjipb2CIF3K4gjiTlZ2Wxz1V2xE/9PmzMJwWpBy6Xd8W46yY/V3r\r\nQXLNTpkXUzAlLGwqFGoBWmU8Hte5WEtqPKNAblxR7eqDQAhgcnaWQXbjapqQ\r\nkdyXEZGhi/jwzsLhXVDcy/6UqW0WPCUR+L5OvB9JQL5zss74Biwtb6QOycVR\r\nebj2SZbe1xD0oMBSYyqx2CwED+ca29becxwDaS3pjQ0O07A6SfTlg086hFcg\r\n97obKP/jBIT5Wm2eiqY67W/LrDUxByOXgMwZc5ugz1Iaz1KdUKe39oGoUxUF\r\nmgscOskjJ2x87O25Ne10j5GEyDXInE4o0ERhxQNfSq/KclXOXKZvxbPX0Lgc\r\ntPYwpwocwWQI17MUDS8mDfVKKEd2Ny59mOInPMPZMzp30IPDGunqZyyWTRiO\r\nzZbJCK2otJJZXNGaz5i1osJVcrA9GQEq1tIIxufsjvFLk26MbKDQq6v35mgL\r\nvEh4T7DQru+4NUlxdkuPAk/psAC5JLBu3SorvvXNBIAYLC2eZ7B3+1pIc7SS\r\nEhe1C18TzSwi8YG+ULci4G6ZBzrWIjtPXKd6EiN60aiTtxO3a4vszs7A5aWZ\r\nGHTdp7IWl2wqUmveBsEGc1bibj5/kh6Pd3c=\r\n=TvKB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.0-dev-20220729.0_1659091525437_0.6743096191980249"},"_hasShrinkwrap":false},"0.2.0-dev-20220731.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.0-dev-20220731.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"0cc8b08c75f148fed1ea0879d08b706f38dea868","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.0-dev-20220731.0","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-QLoXo3c/lTQsDodb4u2Y3j9mb78q5TfGebYPSlcv/EvP59+07KR4Y3aiLjw8Sv/GoEsIFsD4SClD/4A5ibqadw==","shasum":"f25cc815364d00a4108c8ed2e9df7f595e11d97e","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.0-dev-20220731.0.tgz","fileCount":6,"unpackedSize":2803248,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDG0unql8wgbjw1JDhxYk0nx5ZBdZsKXvxIq7Tqnh5upQIhALWAVjYFLMaBZhi3HIhm+AD8w+/M3szlh0wSpMjE8mb/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi5xYbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmocQA//SYHOdtNM0rFdEMBQZ4PsapXr/+uTDHW1693+EC2x79w3qFCY\r\neA2pnKy4JucX51uNNdoEljHY0znqjTL8fSHZrKBtyJbnawRDcnZVEdcfWRUw\r\nVqoDnpFOHlotIdTiwIVeq0zdsCm0A7W71Bga/LGxs3fZ0tLGWedq6y5rpOYY\r\n0zZizEPNIuUSx62kYdjJaSqZG5QKx4weZFYO8TZOVDnEw0qcqgPG9z6S9uq7\r\nY0egWCS+RDuuoFGcjMx+zmp+NgsSVxOn7R663wHGyhr0yNGROWlvIhM4Dtqr\r\nFBWXyY5GqPhMh94PxwJCyMxsnhv7HeXkjw5zrNSBVjcbR45HMPYvnG743gIQ\r\nBsB/OxD8VXg5Yycg2ZFeFhWyxOL+8iEZPfFvbvydMQmdB5BaeOXsIgh255U1\r\nR7C+ZLijy+gPWTlFHC1Kwn8ylcnSLnSAKT/tTo2d2eG2pOPcgH2MZBdS7KzQ\r\nhNb+EGTAny1yiB6Vmt3eVAaaQWSqcjE3HFhejkGXPHId9HaBMASSBoHcqT3V\r\n1Wf5UOszkiXI4tkOo3XxdC3KJNirp5Biy+RWyd4AD4Rv90XLLeGQ+xubuecd\r\nd2fwvn+Sp6pZfGu9XpHVxQ/s7dcjxZE/5SKKSWjigcJOyykqSoqAUROSUmfG\r\nWVYb0zXw6Qzw1eRB/dP3k7nE6lqxAhJRjI4=\r\n=a3w/\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.0-dev-20220731.0_1659311643449_0.6648398171954053"},"_hasShrinkwrap":false},"0.2.1-dev-20220810.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20220810.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"63ad8acd60fad429f7b2ae68bfbf0025f538c926","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20220810.0","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-KqcEWshT9kPvXeXlVWLqv/RXhf9NXjWTlOgzHnfEeVG4sCI64vIqyrrDKEY7i7K9yuU/rAxMJ5cxZQTaDhudww==","shasum":"85cf81e92c99d2a00866e7c5b0c681604571f983","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20220810.0.tgz","fileCount":6,"unpackedSize":2870123,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHY41JH02mvXJlELv+wcgGNmJg79pvAaDhrAeMyWxBMHAiBsd3w34w6CEyNJ2rmZFXY1uTGUZwaAUv/SoNJ+eckxog=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8uaKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrpJg/+PW23Jj+1wOewHzg6ODpjU3cxmWjKSGvH+gonAThVFMr4VF9P\r\nTfH8uGI1vXKSFBIDoI69iZOhA5xw2WP8fHhwERYXZjUshmO/jvrclVS4CwXx\r\ntUcJ2KJXNBRJ3cfYkcGgn4bn9UsZuZTEzVnbRVKQcIZC4HSTIOPDILzKYjRA\r\n1jclqzb5yLrYv8N5eZrRwbrW8iATv3bWInM8VP7JUGAg+1AtoyRsvN1+35GZ\r\nENcxbyJo3hrhNYC8u8LKFAMt3ddoOeoQ75ERFYvqjv2iMU+bSt5Zk+cJhmNB\r\nR3ZhdTpTZ/GKmIDv1phxoNPneiA2pqpofKt6bw68TmoHojUh+uw54T/SZqEG\r\nLAzDRyRUJGs1ZyHtpU6WYLXxIrcDgavQR7oVsS79Rn/GVQG5RRCzfY1x3/GU\r\nQZvYF6lYbFyWjGrx4OVNXn8j0eQeH3vyFTcobk6r3l5ghO+HWcJ4Od/IkC7r\r\nIgLl03JjDy1tdPGuE3tnP/6i1f43nF8Vn6UFy+mjeNfF2P1BLddjjIvqG2Sc\r\nKoORU8woGU4xJ+gbcQc0jklbeHcx0k2r6k9+IqQ4poA3MLhKHE49PZigbkWI\r\nInUbftv2g6ZuaFprWbohAdE66UZ9Q+BCRK1xO507sLR1uU8Eoa3Hj0YoisUi\r\nkt5gHirgmVhexib3lDzPdpV/r+3BDkSlhfk=\r\n=t5bB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20220810.0_1660085897928_0.7800902018176838"},"_hasShrinkwrap":false},"0.2.1-dev-20220810.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20220810.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node --features daemon\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path . --features daemon\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"654a854ffb1cbc0b0f702cd50adf1ec06a805bfe","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20220810.1","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-EUr4YiDiswEwGQH9dyBJVGzKgcbWrJmPluxIloqUBGFEUMpFVBupf9IBwrxAdAoJ+sgbNaokDEoLVMBCLZjxhQ==","shasum":"8d68deba846a7e144afad96a7feda607f20103e7","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20220810.1.tgz","fileCount":6,"unpackedSize":2869758,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFP1gS+gtiat1IxVq26gyuxFCMVT0hiuQUsaN+JfW7MQAiBs8JyvHCtlmc8as2CYs/rfLNauwkHW5+f21MHjZfogkA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi83cEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoblRAAkwK9J71Eua6VbASmYSt+dQ3HljHeeeh009dy8XhLPV0t2OrI\r\n2C87b41cUczx+RVDN1KgMfYSqRSfIQgVwzfsFSGmnMYSpKQsKuUbmUPCDQ/h\r\nnzC5XMCB/ongGQXNtTMrIS3e7wjI1yANkZ7SMWJJRTkjiXGl4kn7GHq8w1pe\r\nhthn54wZNujfVLD7LTyF//J2TXaMW6Ij7JUqB18pHT3jO7ixZj3JtgXg2jVG\r\ncqC7Y3XLTzUrelCbLsnrkgAABCPiKfJtx9LFR9TcdA5WG1/ja9yY3FE0pk+S\r\nKTZ08PPC0YAcJwzQwZbq0zyPBc8RDWYDYfbiQv9RZQvAu07VImzglNSA5Yqq\r\niDVyzkl7SgzNnrIjD6MmpitqP5wlI5eQA/3LM+PMUL7z+twfxm/wlvOmoWLV\r\ndmhQHuBGk/Z7jfK6+WkhHleZvLoKZTFq6a07pniPO/Kt7DC8r2B4AsU4O4sn\r\nAfsaP+SsOuAg6/DdKvoATK857cVjFGJJfZbpe4vWywUtNw+4w2BJDAUdM9Tq\r\nlsL8xtdqT96RNWMyN0VrfRXo3E5394ulBEVZuRKbiP1wwQFubXK3fa+GLU9H\r\nw+6PZiXEcrXSnBkZLH2F2HDU5VAls3QlfVAJjBsZHZ3oSr8A1oH/cSHSEsAg\r\ni7NGHe6gJKta5eqWTIN/UxKGGXHvUuhafTw=\r\n=VOtr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20220810.1_1660122883867_0.7542049143555754"},"_hasShrinkwrap":false},"0.2.1-dev-20220817.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20220817.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"a76c81bbe35de25a98f19cbdee6cf5574e0edeaa","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20220817.0","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-CNNpuZPLapJ8fIDk5OntXEJpwlpioqJ/GcUr0seiNX1V8nQZq4Y0Tq9A1lhEizFFs4j/5ajIIh6RMZr980uwhg==","shasum":"c60f240f5e5f088d0b9407fe68f4e693d6393729","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20220817.0.tgz","fileCount":6,"unpackedSize":2870759,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNt+1cSzqEej6zn506VBLGdgfvzIxHMq3hE9YkRSlRJwIgJqNhH8ghJBMteLc61jOY1z1hFP1VXZvV0C7EHd3lO4w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/LuzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRFw/8CH6tKETGFglycVX2gjAqSsOj0W7X7lj2hgujhCtbENPOm48g\r\nXnO9YfObsJNY1zKq9cZku3SP1M3lRHXb1jPspwsbke9tH3mHo6LsdZGzWCFE\r\nRerCgwsvvF43vZuIINdAXWelEfNODPj3DKGFFykVIRRO/ExpF+d5F5X66Snk\r\nK2HWiz5NkdXXPUaSGNSMI6v1fJE29DvAn1U6cLPoHsJpClybVDmvm6Fhc5A5\r\nfWJ7J9G+44MiFImZgUuIfGuiCOy+2oiqNMcHvmbz29dJ4/RwKXI+8/S6dbWT\r\n6e3H4rW03gryGtEPtedxrz1J8k1mxZF1yK4gXt5bxvF2MAFiyE75MQnY7R/O\r\n96mN2EaOlMCz5uU8TXiFBcb1U7qq884LQ+qlxh5ntWw8RII6AkVre6RaYNE1\r\nXluXVgQlHobKCpLo+yyYHw2aE0aYLYZH4Q3w86pEoxdbZoONeMaA0NBIOK16\r\n20zGGWyVY0x1Adh891qZNSDHqnnkdfwD9zm5dSVTBUsf3Tjgcc91OuZdPMDw\r\nZTLtkiJ/+cGN4WLSKqkUcVtLyPJZc4Uw/tjtHt8QA7+WqFuvD+5pbujv5QiN\r\nP2/0hteX19milZt6pJIQqGYqgc9yDgTPjWFgLWjlHEL3uOcEbnre9sv9Y4Xz\r\nAAil//V6n6dFuq5Vp8HdcmJ7QJD+ab8LmC0=\r\n=5mWq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20220817.0_1660730291270_0.4299828553571621"},"_hasShrinkwrap":false},"0.2.1-dev-20220819.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20220819.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"bb0a912c2b7184c092dff7bfe0ca1f913753f850","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20220819.0","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-ZgRDi5gcGw/9mFoLCAicpO9ZBDJfHTtzp+w9yzkMN1Wov/NLTP86Z5vVYYfJQP3A4Xi5dVYNCeTSc8rBP5OfBQ==","shasum":"03800dd62bb42e55961fa447d56fef053e341bac","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20220819.0.tgz","fileCount":6,"unpackedSize":2871405,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGtTtdxjLk7P+PvmWDxZABzPRqnO1iabR91lydBIiTgqAiBEvRRI1jqNmaYvYiLEogl2mrB7+uP4nifT7QV8pcFBpg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/sv9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrcZA/+MophfPdZDjSg2vTU54GrJh5InpTsyp7o0rxkIDcuEgU+x3Rq\r\nxnF83/GrJPGeWlT2G7Ygjyf255QC12UrPpwHRD25DiTOK/yzBYTZlkEKvJjZ\r\nVgbULwT10AlUFs4ErnfVGwOM9X1n/OMmmw+E2qK1cixE+fzMEzXtYp94J/SS\r\n56Ytat/Jh+nrcuD/Glera4GKsl5PzEIuqigAWfo8oWrzmXNt63bv4/y8iYMc\r\nOvCDECz1gxI+cfC1qeyCZSusQJklGS6DANLZsDot6BNmztMElmBnFjtmyTFW\r\n/w0r4TC+6gYJ8uEry2JTUnmu02sqHAC5SRBV+bjFn8X+84RjBTahBkaM2a/q\r\n+IVDE3FYIFp0kRWhKVbPy6dwUqNzsUe5PB2IIQVBW3UhUbjvaK7N8F74dNr1\r\nO5QZx3EIGdmTZ/ZERYaNIoGCJokbfseq1fRNfO96vejOEjaYpsU1VFZot15G\r\nVMvQYfewsCbDnAdiUD6tseZ5ZQDK5MlRIJYa7Ksi1g9PQTe/jRx2ClFcy5x5\r\nPa4JvCIoj2O1wpmUe9s0DSuudFGf3I+9+izOfHxA6w2m5wJtD9qV2TArgaPg\r\n+JpPWIkyEdZdTsqERZ7NFzo5xXM+faUNDeXwmtVnMWsCjP6QBUIXnluZCCrP\r\nb3qfWaZo4Iq3Wt/hIno6xnshxMHK8ab1U4g=\r\n=6/PN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20220819.0_1660865533295_0.01385677856905887"},"_hasShrinkwrap":false},"0.2.1-dev-20220819.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20220819.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"50c78f8f880649ee38cbb29338c0f8d193fa0865","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20220819.1","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-M0O/ZH2D87q/JTy+a7iW47FV0/Ml2nWEVxg15szlFrotE7BMnGqAuq9BxDW9/ZXGvMdHsx1fFtUaoVzntKkQjg==","shasum":"9e8c4c0346d184daa2041f6cc84b90b3e2373ef4","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20220819.1.tgz","fileCount":6,"unpackedSize":2872103,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKcHRdXIlZbW371a9NhidxtKTXV67U0u37B3zIi3b/BQIgQfcLEkKZTXEoZDx4jUWoV2YxQjpdPnL8b69VCM1rKUs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/4ySACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqx5g//XfHox8ivQBfiWTQl6btO4ez4cC/y4gVUFmCdaeyFd3DKChMa\r\nP/Z5iAj6YB7HQ3bhIvaS3/QNMtGihrxOzeYaCPhKKcJS86iGrSYD1qkb8K+T\r\nIVnEO/OpUR2yL2w+idg2phDztB/QHD9uY8cIolUO9ettPQp3K0mq2fm8bHgX\r\n0525VR9nuryppZ2xT6LWuZesq+RwSqNZkU4IbJUGu8ah9eCIzMxWsmFTqfkL\r\nT58BdOrsSoi8fwoiy/m9HdgdW/HXzwd7uiR+Rr3OC4I4sbCnqJ23d/4YzEYy\r\nfQE0GqnmmqsUAGRmw5v1Y8NeSnyEBaevf5fKpDMQRXMjnuxJZMDAivrCo2Ox\r\nyZvQO02lPDLnVG6rsqweJJGqe7JuY14MZlG0a/AUBkYSRfRuMFB57spREtWv\r\n6gBAjdfL8M0zVhN4NIDAchVRWwgej2AvEfsN3bJlnAmaLUw2582aZ9I1J0wF\r\n4LRQxP0iRsJpKnm6hhFcp8O4sWn491F9O1pp+Ck6MztFt/nzlozgZXkY+f5N\r\n5hQ+xCPWc2kA5BuQKqclV8rrzxjFWGHzErOH0ImKNwOo6HftHR71EJubuJ+z\r\nrfQAiAnxfiCn6xC+u2xmpNdWtYg1l/RAHKu+AcC1TBo6b433q5v0U+Xlra8H\r\nMQgofUTO7y98iX3MoW4hUce64P4Aam82HLA=\r\n=GiAp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20220819.1_1660914834556_0.713805677778288"},"_hasShrinkwrap":false},"0.2.1-dev-20220826.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20220826.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"7a8e67dffbe0fcc3f26c64b469c5a797895edf6a","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20220826.0","_nodeVersion":"18.8.0","_npmVersion":"8.18.0","dist":{"integrity":"sha512-+ZObAlauueKDQiHMzgi/v4W+D6NjOprnIk2i7zWbK2vq9pbmXzPGy/p6fHubk4ygQmDlQHxGM8k55FIeyIN0sA==","shasum":"d1fa66cea2e0abea4e12cf7b18b51ba1220e04d0","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20220826.0.tgz","fileCount":6,"unpackedSize":2887899,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIApaGmD2xfPe9fSZeILlJFN25ItiWzKwkTqntOPJuireAiAEXO13A9dheHDWGWNYvWZlmtcBdm1l7Rr8XVgOsYx71g=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjCBgjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmogug//cj3OLBdAMTXOIU8Xbc0ueQ+RGio7H5AVecPpLORfpcdax501\r\ndeo4GmFNurD6OS6eLE+OvioHxn3lo5EQ5/fJS4zalaC5ZRdmj7peskEguY4n\r\n85/X7GSCZztxZQtTi4FrndVe7zf0XMYptm02mUfhs6zUj5OQoehQ/j89V4TR\r\neyukKvnHoRI9iWR3iSBSQpCSWwWws5ICLes2dGkneW6aJ+rh+3ho/a+XzK8p\r\n6JVLHfNmLx1pjEpRKONwtpIjESg5pKlkyU4ZU7DqpjP8oPN193vHVkw4+nL0\r\nkOW7lIgbktYQ1zUUyWA+GEdElWVEFPHa+NVq/5WgmXKiIEphCDA8Z1Vh0RuY\r\nRlc34lWtOQNBO9WZ0emyKbRnZfbkWji+vw4Rw8C+GF7U9yP5mOr4xSTHDypv\r\nBpM21brQLYh5Mi5G481ixOqGdEe/R/WMY6rN964T+tcfYjnM+AkhBgrVsyiO\r\nd7Ar/5zni7S+DuvNgqBxO7VqYqUdwIh8Rleui4JMyaXvDGBSCXpsU/eJ09kA\r\nFJ9ebeH9cKym1pk7Wax7I4X2OzzRqwwVhwN5CtzMCj/R8p1GzOnRwL+PKHAj\r\nTXP2GvGBNSs5UaA060ox/tcCevBRfTBbqwB8Z81+4rtUo6b8iV4ZaSg2ZIzR\r\nshawANuyjOmzxAIsrXW/a3KWNsdBQO6G2so=\r\n=95fM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20220826.0_1661474850800_0.6901736900223003"},"_hasShrinkwrap":false},"0.2.1-dev-20221008.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221008.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"cc0746b7cd38b0960a11ac6bb96c4349f3785202","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221008.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-sEWuwGOHzRG6xAcQAKEq+I6vPcPyBBKibuQOYni3KTu0MyArdIJX5YPFQSjBqjqmqYWqsZ4ED975VwThpZgSDg==","shasum":"f75e86048226951916c137598d096016aa4995f3","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221008.0.tgz","fileCount":6,"unpackedSize":2922768,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI7LeV0q/WJ04Ut26blrsRPjkFNdU3sLQHPJqiTiBsiwIgIVXmyOc46UUTMa6Vd28R2J2e06vsAhg37mjI/lrYqeI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQOBqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZSQ/8CSiiKcX41stPCJWYRgD5PI6xGvgxzwfCra8Xubh9cSWGGpnq\r\n0Ff2Mj8vAGbAeE69W9Dx4Mm0K6kPMS4HHFwOMgw1z+2LHXkmVVSODdyEaJhG\r\nOwOcZP8TPYRGaPviiEEgoVCutecYK062ch3MthTpXq8SF+y9vuz4TyYfgE60\r\nxY+phl6+f1TA6yqIVwAEG0lIcQ05lVGREBzW/1kGVqLwKUHgcr8LFBvLsXSe\r\n2cBttYZg16P6GFrfRKcjZWPrxZGLaUwCLi5dMVEg51/NaY2fIoxA30q/8udf\r\ngm2m8XjlLEhBMMRgOIDQNgQ7BKTl1IuEDGwlBKByen3kNrSJQEikNXKAy4/r\r\nydJhoIwOSAQQcNKng+gE/a8T7n+cwSIlGxD/y0UbdWyoeZLKGoPTjHmYLIP6\r\nBLxFVdUeyjAY/Z0magIuTQmOR1WvnM0prPQrLIjsdY5GAW5lj0E/C+/Gt7Am\r\nmr7c4jTuJz++Wv/FFArkM/dg29qbYyrJzXV3g+4l3IBE3uh+AkVMmsweJWGQ\r\n8S2od5qo+Yz41gj3qsmBfZ+gRGqPdqbyJAdw8rdgL5drLk5Ib8TLho3TZdyF\r\n7YmYpiVVRwypUVTmRjUpih4/8QeWei1EDdDT8Z4qF1IcUJKLeRiJyBeNhxMf\r\nX3rSJv5ik0uVtHlSEts2wdGnW76vqzzBq6g=\r\n=XsOp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221008.0_1665196137927_0.290441436753917"},"_hasShrinkwrap":false},"0.2.1-dev-20221011.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221011.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"741cf3a6226e67fc5e16e961a1928dde879e8328","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221011.0","_nodeVersion":"16.17.1","_npmVersion":"8.15.0","dist":{"integrity":"sha512-jOgUy4Meh697rA/IBAWO2evOGzO5uP5wpb2ynEqx0QVzy9+YCazyfP2q9aBf1hWDZUoK28eCAcIic6mNdjHcHg==","shasum":"eb4dba36c68c9df19aefbbe3f1b600b9f689862a","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221011.0.tgz","fileCount":6,"unpackedSize":3117983,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGjzzFWSyAMioe4wqcDLaE3Qaa0+EljlsDNaemqFzFk5AiAa6Nd6FlAWwA4ZmDVDOnzrrQLc1k4wWP5lK80rUHD9cQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjRSczACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmokoQ//S7cYgc17hqWKpAOE3e2mLmBuOZYqdjw9lZ+Ux4Sf/7dHJeMG\r\nZ9l96xZAA5aTv3slfHUsGhEp17+v8I9JM5fyjXZnZqy4unIwlA4d+GOomBL5\r\n4w729otBQ1v0spNHp1F0X2J7oDt1/9EOSZm/jrJmLmhSeqSb2IV0XwBMm+h+\r\nnJIc4pwI2Ns+nlUIxut8wmHnYFdlEWDZKMMjuIWebRj1JnBXS4cMAmU6TcVo\r\nQIjtyelEGCWZBBxQfhbuSstUuNMnWopC1wyYdJniF0cXL24zRNgBdq7VFrLd\r\nFCw3XX2/32r9cTkzdNAAJnzJtsKObpY0bFfAvYMFtYEgzHn11rOGau92JRLv\r\nSsiAg05Mdpuw2Z4uC1pwjS9Cv1uWVoOnMSYTTDQhXj5Ztvitw/0UxYBUmZ+N\r\nopolHRohkcsJlBKzO/CTDZ8kqZj9tyiXS9bqWk6+xYKimvjyz/nHEc0dWJy3\r\nh2rcHpOsSYxdKvssju0P+k0lIoKPtzkNs4Kke7n0w8qcOl/cdY/ocnFTFtqq\r\n8PZiJVVGEbVmLn0KAB+HwZ3rXR/MhY4ndxGULsRi8yVWpI2hofoQf8xHYD30\r\nyoP/gPo7U7dnPpU/lfTsvHjR4mOEeOzPFoim4PCHvDyZbM5ybYhQYgIgb8vn\r\nWH09O7MwdpleTjWJu/sJwzNUWlzUzALfsPo=\r\n=9OvL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221011.0_1665476403381_0.3857900926527824"},"_hasShrinkwrap":false},"0.2.1-dev-20221014.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221014.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"0ffe28f7b77683649dc0bc6091eab1bd37675857","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221014.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-6253oWzbBeY4uDp52+4sts8RTvKqfxIBdvXxwQhnTxL/FZZhk9Y2UUSmoPs6A6FLz6e/f6bPdu8ji3tseB1vBg==","shasum":"e0193bdc28c0f1ec7a8f965f5d08cdbeaeae9541","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221014.0.tgz","fileCount":6,"unpackedSize":3053665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCA+SW9+FOkgi7eWYnGh9RPX6nL9F43sIvRrRDPDW4otgIhAKnuqezzyTAw6tSzRtW0u/XE+DRnsazAGeZth3g2Jjxf"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjSVm+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmodeg//VScC7OMsKsvJxbxsfkRaw2luXfgRGJRZnfslUIKvTyQZ4Omb\r\nv9uOj8vnl4Dqld6heLfOwOnqH+EK03V/aiLrrCs8Nts5nFhtlMz+8pBRj+fU\r\nFoBk24I9kf9AH+Qq1HYGKkvt/l64LbbAD88ZF1CRQgX6pEmFQaiob1mXn+ZW\r\n9FmCrfZs0nUqPWek+UqOnJjfFATutnSO4EtklIXF7Ne1+sGCwiLlhrOsGwwv\r\n+HXbRs6LlDLWlLOyuUtJcmPnkzY46VNKRALklbg4ulfSSMndNRWKjHe4bbWh\r\nuBxTV5jo70v+0Uh2xWY13xoDCKZHkBH8Rk3aQu80VkMzGKucLdK00PhSDZZm\r\nkto0INrondXLagf+pao3aH+t/vx1Y4e6ZyyHYOIYhGMEJi4v7zq3oVE4RaJd\r\neBvYa3a+P+5Ag+fUkoysBjvd1QwVO6iKlMvDfvDYua8pJXFMv/eeHS4275xu\r\n4woGtvI2JuA1BiCB3TP7s4uJNQFJ/eQWtOwOIn7fAfK+7UpaSIPv3jM2de6q\r\nQQdPvk1J5+y3wLwUr1QITrJwafLEVy7SmstYmmpaaMHVxWIlBDd5ZO6pY3Vq\r\nVbGYnij48IpWVVfQWNhRc+sVKD6VH9MtKJ1kEb36+zYS9htv/T+Z4ajOl5Bl\r\nDgOVD7SSH3vUmFhV8fyTT+rFNBbY9eWuWEo=\r\n=Fx4W\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221014.0_1665751485719_0.30712562501636675"},"_hasShrinkwrap":false},"0.2.1-dev-20221016.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221016.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"150194a1a291fa3c7b516aba72077b75b6f6e70c","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221016.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-lgmCqoFol7HzN8F7s6nfBb2eSWSFqRIDzuOfHSzu/H23oxh/WUJT4fUDiUd8uKg+FfKfX53jGPH6RpEkUDwAFA==","shasum":"41b6f03b3d190160d24fed6b7c7740456b38f385","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221016.0.tgz","fileCount":6,"unpackedSize":3056494,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSbU1dazhrBv4lhYwD3G3hHDY1BoJva2iPbiJcNjZT0AIgcrocP9deaiYi5FXHyfzgHt/g3HmOVsyMAfPqvlg+oQE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjS2zcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmosPRAAkMk+JBAdj7hCC57Xus5ePQrDzI7Tug+swMU6xfMbVOvOELdl\r\nxDR9u2UOwJ8bWgd1NKP9ykFHqArc8j9Iq1W3MKYuU63Z1kXwQ1Z/xE06lNOn\r\nQSjIpCbWZ8smNS/RKXP1FAD04CIg/9kUSiC53rraIEeJCbCI9637bWILvD4P\r\nN+jm1QMxxQibKOBKKmgDvHZGCDEQ6p46TgUsPcgPFIAv7iWvsPw53aOtdMZI\r\nmdgiMBdwJNnFR2BurU1M0TP5+bjVQjrskPzLzxiOY4/obc7gN8G9OuXpH4t9\r\ner403Aff4TWTiKMfT7SrBkykGTS4rFBMnro72OKW3DekoOfjZv8zintS0jXG\r\n2AFlefPxhJqpJ9wZJZ7/ErvPF/OIYyJrDE+upmTEUsk3Jw0sn3JpwDaxaP7X\r\nfKjtUCVhat1gvgDNZFyaGEXRBmNrIvvorq9pUyjasZseus///aI7iBDGG6WL\r\nvTUFZolcbACvGtiT26xgAVZnEwCJXiGrwvuz5kQoNo5RLJW1k1Hgt6oMKB6h\r\nGca8U+slwMTKcun751vkpj3LpFXnXsXIdkDjNf5FLgoonpKKjBcAScV2u2TK\r\nLm0rX5hrAKsHX2+xtKaYPBO3VeIwGJrwBXylHru8RpeEIl1dHIACAUi/knDS\r\nUxLKprKNZbcbbfZIATB6x2sQ2gERiq+Nl2s=\r\n=tg+E\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221016.0_1665887452221_0.36131101734131077"},"_hasShrinkwrap":false},"0.2.1-dev-20221018.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221018.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"f61d5de42c3c6c443b241b54b3c8583d4301c848","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221018.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-XsxU1Lcni5OMtU99jPI9S+sYXItwTew/RAfyIsitqoMg+C/pOm6eI4Oc4l40l6OZ6U2lAO9dLlqRKZQYbNbkjg==","shasum":"3570d48241e07ba47ea7cdec84a1e8feada3c17e","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221018.0.tgz","fileCount":6,"unpackedSize":3070249,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENDI1CDgfAFD8l8vDOVBGk3qF2RRkcrPgeKRph805V/AiBz3Ys9xO9Vmc8i6XxPSxnK/AeCxQGk1zIhHBRrnZfvFA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjToaTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo8ARAAonaAVDNwGw0dTixPdlSGHs4VjI1qgg2103jaMLlt29PUpmrZ\r\n6Z3XiLCkj5yK+4CBnr8MaYg4zb0LtB3jG/fmIb1xQfcD8L9TFd4EBoAAiOoa\r\na7Ev+kglXoQeJv/SNjj516amkqljH6sCDSbNYHny5BaAlXaAeiHrj6fSK2Sv\r\nDhLrSD7UBHTrELfk3rL4xuuOttWr9bIl6/asrcMQXQ8LdB3LqoUE5KDG/lMx\r\nZSKBDrO/NS3NVFCbwQV46/1Wf4o0+83Hgn0aVrj+M+51IMKh0GdpQwJ2IyBZ\r\nfkSLQVHlYX1B4DZuNtimz1tNWSHdZku0/KHXmamOgsZN4pxC2iT5iwTpemN3\r\nfSY8Lm59Z55gQO+8kMWh6BrlIe2HyFxC919BEL3wluJmm9euYJJi1jI68WPC\r\ngDJpAsZmDjkFo6QPRR8DnblKR/Hpxcv0Q9kJuqMLCRseLjjuVSYGY1YMAI8F\r\nUknuxSL55OV73cRHkq4mjTkyx7uBr+R7mvTvlh/CEe3nId0xRi3PTND1zzzr\r\nYp9fnxl9FL/oOLnX9H6wIhsz6w2oXbB1HvFnLIyWVGeIu/Z/4QPO27c6PP6x\r\n5qSs//3ODSJ1IdsYeXtGnWqHn1qieR3mn9UkXnw875bQg0LF5ZIURPWxH/Zl\r\nqXcHud/CsfIvBz+R2ydyk27gDzB8KXKIBsA=\r\n=FocD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221018.0_1666090642865_0.7124637419353226"},"_hasShrinkwrap":false},"0.2.1-dev-20221019.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221019.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"7fc90953c764b4a13a10762523cc089a7babeb3c","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221019.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-8Ji9fL7h/f3qYZeeZ4hZs5+ivTtV75zazlwG3/yXowrJxlq8egES6gVN7xYnBsbQICEXjXFeopv5kn4dkLJl/Q==","shasum":"41f6f143a4c9fad62b2fefc67d3e7464495ed426","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221019.0.tgz","fileCount":6,"unpackedSize":3070306,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCI6B62sbUM0Wqobs3Os40U5aXD0MkQaRA1pBoXZPdnKwIhAIdsLSBWK6ed8601/m1/haIE4Y7bYIYLmt1xqKJgwuCo"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT3c0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqyTQ/6AlXKVGxPWFmBd3E/N98twwVRhZkjfgIhCCgc4S54urBYcQnK\r\n6r3x9qRjym2G6I3+yT3rgPrMe9nl9UAWEwaLHi7e/udrGFs6IxLfiscqeDLN\r\n7fBaY051WTWXcwwELcFLU0l/f2w88pPc/ktvAl39TD4T/azNErnWsEkNAv9s\r\nntGtkXQTPom6BPA0TsQ95SLRTOEOTYAXC4cLuwH6Luh70BjuM1uI37q/5jXL\r\n80C5XD50DcEZQWuWUc2zT/Vxn2FuuhldF0B3P2hqrQmD5B3mOf/o2yE2vlDc\r\nE97qj6oqxTiWzkVSfbwrUjMwLv4GOljSqrSgWNG3DurbHqjGkskOry6EVQ+M\r\nTy/qjBxK5cuf+qqmC8676P0Q3gVPkR7I2Nv98lBdeiZFh91ZIB8fLi3D11XJ\r\nFZdt7cNv2+ZNHqvgAnBQmVWP7RDLUUzJO+q+jLvUl/QfCiWgEcrwL80AAD03\r\n2MmwiQ4Bqj7bViVY59VkuYagssi2YkXg2fKmKIMNndaX6kBtUnpdGqr3n+Rt\r\nlIbn6tjcamGTC077vhlF7g3zFGlPP8L7r30BUKp8K1+M9WPHotQaIuedRfqo\r\nR2MJWl/uSZfWmrOW7wn/D6ryvads+sDDRWWxMPjeFVDjr5Ko8811kuhJOaYA\r\nnDMI00SdLIwBvjFZrEV0BlhRQBJHbhrHHCo=\r\n=bCOI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221019.0_1666152243829_0.1492013724984811"},"_hasShrinkwrap":false},"0.2.1-dev-20221019.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221019.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"464757dc0283efe092c258e94fe30e3c16671d91","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221019.1","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-MXrgFgdiNSU6al2mfyavlxTeGttb4W+PMm6KGO0KVZOvdtw/lvXhqkE1/Frlp90xzVyTSPb73KJRDk6xntJqRA==","shasum":"bd3089db357946a351d49990fffcca3225152ea5","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221019.1.tgz","fileCount":6,"unpackedSize":3072449,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICqu0O8YuV9hE0YHFhDULJoh05KhBpORC2rxfKuFupVYAiALtsMv2lxVDKoGA7YQngK4aJF2F8LeZwquFG1eBj/3KQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT8i+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriyxAAloGziOd49vjA5n0Sy/iXwYF8UoNMSB6PnoMy70D6rMIhbtLB\r\n6OIQBlKvhLgvwLvkmx2ZyhPPZTdxX+v0XiyEFqY8uOJzK1MV6360kUt+t7l/\r\nzbGK+g6c8g6TsNTT/4kr+ULN7WfygBkodXExs0pBT/BYE/ZHk0uB0jTjIrzQ\r\n1qa5KGCGy8EoE7K26r7iAO8cF7UqoXIrX26J5UeU+V/akgSnDyytiLcjImDY\r\nkBxCYuCMXRY+vDzN6OGToZS8+9MvLR/L//CnVs1K27z9KUPm1plAaUcjDvW3\r\nZCpKgpA1LkDSnmXaGXlBn85nLnSjtlnvYgchHNlaGRXLAXlwZx7p/+zjm4n0\r\nqbJypjdqQb1qM9xmNJVC4uJ5hVmGqpd8XZDnAU36mwjfxOD/LmRxl2+FVNsT\r\nXu1ttTtKZFoZrErQgGVa7HalA26g8XFJz7keF4WxGDZ8mwy9zUyDQum6snlc\r\nVKn/l3NRS74SbWyQyn5qhVKA5nM8UsSvVP/ZRTyE9mnQZlup/jeeUttYF9h9\r\nRKxx0gq+1KbUiJDOi/I1RXZkc/SNbkFGUJVWWfqKdtpmzFatBNr1kbbYOozp\r\nL9A4pADkpaBTJtdhY4hxeqazEwKiwJMHcw84ZcPwPBZ7zMQ4GW4t73kn5e1X\r\nGdEvapXf0d/i0AssuXoU8WftN4aBXbMcCNY=\r\n=Hnnk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221019.1_1666173118593_0.054420387784156476"},"_hasShrinkwrap":false},"0.2.1-dev-20221019.2":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221019.2","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"d71ba251d5bc79b51d6786e2dfe242a46c04773d","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221019.2","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-IUYeOazOyeSAJHUVPKA+08Zpqc0xXf4MVtuIKZQCzGKi+ca+gWvw7oHD6b8jKPYGXllfLW6I6yChk558aG572Q==","shasum":"6b288cd59bf681e16a4eb8c6ede5e792305bcd8d","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221019.2.tgz","fileCount":6,"unpackedSize":3050403,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+oDo8cvx0tapvJPII2Czbugqkb/PbE+A5G1VWbaqPcwIhAL6Oxj2QSqOGrhIBIr8Cw7saxpTBvqSNHIptPJQ0fW6q"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT/ryACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpM0A/+O1t0r/YoFDFFTbTGGTJK5RpNyD5HxamJW4kYb0tojfv5hqs6\r\n8PwSETmMWwkEiTaXjbknspVMLKxwKtpH8WbnXjOlD3HqLxdLtLvXYmspKa2y\r\nXohlgRwAMZD2lVlzzTVTHIvdAXk8exS99erlIgG+A309ZIGm8pe6mWAnbWPC\r\nXObFfDOykdK8e3b7JhMJJgGmdHR6fX8v+2JZyMBSxBSDBkYdG/1In9DPgriU\r\n9beyHnwLbZJ0EFnPlREYn7zufW/VMfyVX174/VIBdJV48niQqAhw1EGiCqDq\r\nLX/BoFJLVvzu2SFTGbtIXVVUMkgI32B+ZyxCZI65sA8OPjyPNY1TlM29xQKB\r\nbOmwXVJXYsFKXFcJQ73nzxKvemypf37W2wIIif1ZjUmOTWrXKgoWRZf1ue9R\r\ntLUCspNtlqEhe2EvDFZrbFa5YNkhmL3ZU3wJTlhGREvzYnXrk23o8EO76G+s\r\nQGBVgY71rJ9NxYwTEwj3T0YxJaXAOzUDWzEhxQeL40SGEZo03irwJhPNFgD4\r\n39jVDPYB4JLHuvtDiN8jVX/0/kZ0F1EfDur/mZj75f6hNCET8J2g3wc1vcnG\r\nS0u3hPkJtZE9E0D7SxGE7bUvww1yiZei8xb/LqzW7GqmBcW1/51lc49wxWKL\r\n3623F0ql4Bs0OAeef6pCzYbWftYAqryxYgY=\r\n=JXW+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221019.2_1666185969953_0.8865541190503925"},"_hasShrinkwrap":false},"0.2.1-dev-20221019.3":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221019.3","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"362821f2f934d397dae1af3a01618521d9d88079","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221019.3","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-wH+nxwCKSgU3JJiuRLU0kS5VqdSdp1baHkxv4v/eGXkI1eYFw9HAlczCUjVys3fGJ7WfRSh2VNAIxRDBM+1YUg==","shasum":"23d428f022e15a7760cf5a426a4fad5e579b93e7","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221019.3.tgz","fileCount":6,"unpackedSize":3050403,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSEGqBcXMH1Raih1KPhNUU0cmA/yKAN2xwhD92cKarEQIgVDtT6aQDVLhlzMPC20+5gYM8euSp9nV1+oxwnRiFlAs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjT//eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobeQ//RQJB48YDHyVbzc0wJmbIfE3/o6ONFCm1lX1/iZAy2TI914hQ\r\nNPUafA9CaECoOsCsSBvtIsYvv0/PpEpMXCF1UrqeG1ZAuBfqIAptVSkworGV\r\nb2DaJzSV9bD6SxIwVDN2OM44VNV6DChDLwiRRRTeNz55vKZU07F6tZZT37xI\r\n7T7M+dHqGx9fpVBuOWeT11Extg36YTVK/xy/mJBer+0oWc/Y22DyEek4ota7\r\ngQn4bKknJHlnOUyFSUNijfD/NeoImhPPSfqF/bxi+CU3LuCef0MHrf60Wjdl\r\n/eazrxZS3DA8koBal1f15mM5+fu1jVHPkwJQi/MOLZncoFt0MunrAHaKTm52\r\nn4AUwaCOL/IXY9dl/cXBUj8AkFFfDdrHVd1FitzAqKtGx7aZfCCVmmkxsUbu\r\nHBHjuatuQ6r6MIR/Pvv9nj+yGS4xnvnsUbgydIDXJWDP5c+moIKueTUER1A3\r\nauteBKI75KLlP+5/XAIlHz3wngLqhXY7vkPs+oSymQS5tvPymyLn7MV3zEY6\r\nb0fGbMLOhx/T+G/V2s3LnubpWHTL6GHQH7/el4iKejRWeosDvcjkiuif8YKE\r\nFQPJPRzPYPBRXQpYui1ht7yVHm4jkotRyciVSg6+vOgYR4PNwtg+zDyne32j\r\nPz43GKJTS0EzctIiUoxlVF9uwAZaihRPTm0=\r\n=rwqL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221019.3_1666187229859_0.9389544382811219"},"_hasShrinkwrap":false},"0.2.1-dev-20221019.4":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221019.4","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"f590cad71d1a9b021fb11a35b23b8ad77751fc02","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221019.4","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Vuqgm8jWTd4g9qTm+I2W9KZZK5gs9ufHW82NAsAnRrAf+puhN4iBK+HAX8gAsVwlNarpmicZ8/14Xm6fXOXgwA==","shasum":"5c4371bdac995c537229c4d1864932c4f88588a1","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221019.4.tgz","fileCount":6,"unpackedSize":3050403,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCk2nwdGo56PHeHv2E482BNPcpVVhQROj0lnc75tgevngIgT7ZQ8pOvqyeLWfc6FnQfnFsran9QZVDeH5a7KkBVlUg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUAMuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPww//Q1a/OOdAEQuI6Gr41ihkRuk758KPh+u+gChBMhAnpqarRAg/\r\nE9p4CgyTQqt6VvPILv6JMHVZ9A/U+RKPeBi0W6g6BSXjXzFAOpfQUeHxMO/W\r\nmCA5plLR+WMjxHCnc65G18WvYXbpUy+zkMA+PeY/luFnH5/Kbc8rofaq+laE\r\ng4Dlizr2Dc6EVUE7gC5zqnnObXTyH7C9lzCEGT1IMYUzAZhwBbYA98yXzRES\r\nJxsLqJVTdlsK7mSZVn63cY5P3alkZnZfi18cgry2LWLnrK4W9F+SEq4U2QVr\r\n3tirejzn68IRiY4+HvKmRCEl6dIXVWbmlmtfN0gDQo/7jx4w7Le/4jt2qm1h\r\nmLKwMtb/u0pMFlNo4LB+Jg/r6V9bDFASuc7cfSwAX44EOXyiHp08orWfPmKx\r\nu41kFTdDcjMDtZ0JOzlvxpL0CL0xfKO0vJtbOKY6ktLlN9SAouMJGvXyl94G\r\n2rNcXVhzqgjgRL2Y9G8XhEQzuvZetEODXIy+fJs8zxf4H2GsIPc9IQY5a+l6\r\nR1kxqKXxUAokDwcXtKjZ4no4lGJQeB07oyrrovid2sjusYKTxG/pKox/CkqX\r\naL1bfnUecuXbj0a3J6AMH6qL0YpFp7hnJVHzjfgofSQz0mlXjbEowOfiSdfM\r\n9bhw4Mq5vUGNnJqG3qXkVvABKOCmkLGSyyo=\r\n=Qg4P\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221019.4_1666188078569_0.2103914112662182"},"_hasShrinkwrap":false},"0.2.1-dev-20221019.5":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221019.5","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"206b5377d5c84546dfb12765f0fc0fa2275e82c0","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221019.5","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-HiE6xkmhlsBgXsPTwlqkxEBt4vbmY3BhhXZqv5/5aLgmNNlzpDp0IMIyxtheDsXfNnUH11vieIdZHG2uJrX3oQ==","shasum":"d7793b26726c2b461d00db54c1cdec208c11e182","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221019.5.tgz","fileCount":6,"unpackedSize":3060597,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1r1wK8wodgpxNx1Ozb8mrycAk0WHhrXHUacUMXHaYTQIgKTiCGxkg3yaTvqptU+DJiE0tsNo9m2nR93MAL1+fnlI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUA9eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmptFxAAkR8d/JNflnIvRRvr4D0ouCp27LKevAaHHBTIxh+itY9eCKI3\r\nV3Yc3nH22OhnIYEyM1wKPNB7/btuW+bc0QZDlDNs0DMn+ZF5YSX84dypBzPN\r\nweJivONGiG0G/TRZyuUomNVTB3ClWN0fhEIerN1Kx9xIQZhQ9ivod+Gq5nuM\r\nba7jp5nAPT0pOZRwFOcMepuL7xnMHHhWUKB/x/dRBRwRGy5ORF2FhgV3t1Bi\r\nR2Bkzx/C9XUPw4wU08wa4jru66VrlwynfOK6jlbGydMJsDz7H8p3BbpFFWxr\r\ndsTmKFIneTWydej9Dvy1XWqZAaJu1vE7JqpqoiB7ZLM8UuoX9y26b+PP42TG\r\nejKnBFD/cGRgUI+h1TEHVyFazeQFoV2hV1j4yGjY3B7EGOc1oqxYBirYh91p\r\nEOaqoDlfHp4zoYK7Ngka26t5h57ZGEAXiCSvws8QAic+FWqWw5O17aA2mXdx\r\nHhesPi7lit54cXO0Q5So6BEi68+Zk/n7d9ahy8MLOW2BXTiXRpaPDmS9sEwv\r\nePSdcGEcZkXBYhhFyj/1SNAPNQWGaolDx9aBCyPzJGwU8fFNnUcUrvvlZ/rZ\r\n3GmvzCj/FEA5w0JNc+bWZRdeTxMzVG7m6YB06JHsn9m7h8ylpI3PKUlDG8ON\r\nphmlZCKIcpUlz2yji8BSXni1Z5muRatFC34=\r\n=iE6I\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221019.5_1666191197885_0.4216609614536244"},"_hasShrinkwrap":false},"0.2.1-dev-20221019.6":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221019.6","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"fb151c4c8d782a246a9d78e02d61c3a9ec7422ec","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221019.6","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-kwuuLBYZaMFeoR6a7NwneuaOuKtZJHp3TrYPn6EFpTY8WDjYAkwwleVyWbIehviGHmsRK+EeZyNmGh95+KSHIw==","shasum":"5386ae6946a4fb7000f0f5e8dfcaac04c576f4f3","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221019.6.tgz","fileCount":6,"unpackedSize":3060698,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICEGcz1YHGghkvmoo+7TpE61NCYdrdKy/keosg0fd4jbAiBEPZ2MqWTyrZC4g96UQA9N/OiSAGpGMU7P/vxcYUGjBA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUBS0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhxA/8CZXrWTbVxBbcSgIufvxaIeAKPWhwTO65acYtydavnHXmkyoo\r\nCyL/DlHY2Q2bTTXHQMXnBDZOOOg5FgOBjuvpq7HyoP++h0CHtGqaa2eyYLJW\r\n3GvKR9QUPU86iJCIOLdb06/MCJ/1Oq24Q1EMbrq3PHzKc3zqDtNcSg4mmgXk\r\naJSCMDQHyIymszxiQoiFv8HNIlf/5oDjEtQNiW5oXFpAuseCFhpjEkkigQ3A\r\nDIXwX3B5tN+9iJNsiR/lPfYSHY7nQhHoJGW5eoGShHMyU6FaO9ApsUWl4cK3\r\n8N5iBt6nHynD3s+7c4yFhZ1/uwk7C+n8tTGtCUb4VR5MtSkInhEYapCIQMIr\r\n6VeG2OBWXUq83X8cYIDFen6lFDBxIk0pzC8PqIO45egFdNg70A1IGK50a3l5\r\n8ixPmWVpTPq3ySEto7GacfCfTfjQ92GE79dHxsc6/bMJt8KgqE0DDFf96hGc\r\nT3AZJKSEgOOfUwWjG0kQI9xADLgpB919nPsV3cVTJaM82aXRbgBKhxyYdjIs\r\n06SBJXR0FZCFE1JM5SummE6LdthtUADGJfy0y2Cl+1sNdeOV591hIIqevCHj\r\n5YudEm80VxjCjbNFTLrM2SZzYlEMolah8kEpLN8O8xqTeEU02Ks3AdEpRIgo\r\nC0u1Jkqyrp+udv43p8BDSqA4Yh9jsfYTpOw=\r\n=reLV\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221019.6_1666192564175_0.5433079194482713"},"_hasShrinkwrap":false},"0.2.1-dev-20221021.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221021.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"3260654490b6c3729b64404731a9645e7070293b","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221021.0","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-+ueUVT8aC5Yi+Irz8GWp77e6SPjcG4ezaQP7D4aVY2pGn3xRsGaK9zJQAud3hrGUmmD6JT0gWNvy/Ejgd2IAiQ==","shasum":"b72aa9b3b25f719057b0257ff98391ca6df03282","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221021.0.tgz","fileCount":6,"unpackedSize":3025808,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDgBOLriS7V09u6duOprSrkyxM2/sM2xDCoJFYo1hDWOQIgNPxr/MfnMt28A7GKCEE66lkq3MGtvMq0MW8e5zQi2iw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUWiyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpm8w/+KkI0bytl9sd09FrUOP+mEPOhQEeDNGMX4uEWIB5bkQw7IMXp\r\nmHpeaF9rmyQGQQ9V5ab5XEOd3YtFa8CMbcjCeEUnp9M6OHbDlNYayRqhYCjc\r\nTEeL18S7yQWfNuZikKZjMuyAIbTiwv17hficmmdUI4IwmqM6vkQHZrpUZ8tc\r\nZb8MMweKwygoNrbzX9Clj4o7LGDBetFpBRRr2j/4XvosAm7D8FC8IHLSHFtK\r\nwqBSksmVM6zu4I50fUgj3+0ApStGvEp9qDmSYuMfuihekfaqiyixdM7zlYwU\r\nPCkyRohTIfMW7krP6XZxu1wJGw3P2guuLEo/miPS4N02Idj/bC0MD43IQfS3\r\nkL+pn3VDm7itFjvYOmVh2VJap4jSO64FxISvwLGwDaJw0wFtIXmeVnTeJ+mq\r\nfjCSgobuM7IoO73TPFZDjc29b4vwbJaV8Z8cx8skF0OPpVRjCKS2JvefAaPb\r\nB0WEZLz+IU67lR0tyKzI3WN3uwQxMIjnlIOMk7l53nyrUNQwuwREscxfCdba\r\nDIJW/U5iOghqzwpafTBQ4L6Bm2u8swCOpAgrbaZQpXqpqMD6HSyg36LDrCSi\r\nMScDhus77W4fNYo8XDcoEDBjHqyxg2p93tGGb39XLknedhAzCM6wrbYTN5Kq\r\nZupmQrg0bJlXbloX25ylItzANTvQC2e0R+Q=\r\n=LgYz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221021.0_1666279602081_0.3389753776500617"},"_hasShrinkwrap":false},"0.2.1-dev-20221021.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221021.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"d8a8f8bd9ee10b16f12a9b671001d18a63aa3660","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221021.1","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-4fG9LFAl8IUQAvBaWEnZfY/+JNkgmtN//mPmmQ3wlyUnzMSt6yFi9uVfs4E6UZVMQi0ExXhy20ME6b72X4njog==","shasum":"b387f27e613e8c27e34c2d8378c10b9bb6485422","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221021.1.tgz","fileCount":6,"unpackedSize":3024868,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSj2OI/0M48ODMrDEw/mM3bjPOAeTBju4VijfgRNFaqAIhAKgkKAEUL8IrLg4gOYDEMoD73C9uZeQGUV7zMEg2P0af"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUftwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpNrQ//e71FO80jmPNDdXk5bxijvsN4hyR+mN+8ioFmV8J8aBw+QCe1\r\n5MNgMoIjcsvZ+c8w0d+ZabhHDzbnzvdn0xM8KZcfuDYxQhWl7pG3qU1/tory\r\nFtTk+uOruIJTGcye/cyWqF2znI1SUnHCgHN8ZAKY7yGRtCSGx1lB9UZucdXn\r\nO4yoi+dhfZHa1cAab453aZXaVYbF/jlwirCn44G260a8GCGAKJ0pgbnXVYXH\r\nENNI+9JHQ7dyi9L1lAXsKONA6SChiFD+/f7mf6VO5geoGoY1Y8/UKaypoFOH\r\n/j26ajVqCl6Zgi8qWxlhQYguIFpZsbFeZqCzPjb6b2pK7ECbv13tYJKVKzHw\r\nF0kaS1x1u6LLDtWu1N1Uf1TqnVN4T7qAsdMw8llbG+uVcBF/LhdnxQPri7u7\r\nI74X86bndfrZvfWMD7fi74Higsn8/GsLi7T/Vzo1lUilpPjXpCA2PsO08Kja\r\n6NRdBWrK43dXkfjgNMpe2JqMopomt8pAa9RhO8pHjpvywsl7I5IQx96ks/lU\r\nIS6js6pqcVG5L0MP1JLbrg49BL0Z+HWH6nYJ8AZEqdXjJ2zmq4kwAfKnznj0\r\nxNRoeii1ffUgnNTH7XfdVclvdBwWa0Ebs6JGfr2u2oMWX57t3caF6G7MYWtI\r\nvZZIIXpBxK3B+NXFObLqtT5xsAsl0vV8iPc=\r\n=cAF0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221021.1_1666317168426_0.6280555654909448"},"_hasShrinkwrap":false},"0.2.1-dev-20221021.2":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221021.2","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"f11fd5e654e7a80cab8592b233395865d6e7a009","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221021.2","_nodeVersion":"16.18.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-v1B5pbdn+9f89863Bif6fs5j4A2DEwCo+HTQ9ztyxJJ1w+nw+ycNaD9Kk1kLalfZLICwqdutqr3VVWtMkh67/w==","shasum":"dd6a87bf6d87b016c7b32b459c4d73b83b150421","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221021.2.tgz","fileCount":6,"unpackedSize":2954343,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9GLP5bCm9hV8gsTZGMFYv8H38JCG0MCIY3cadeCiwyAiEA6jvqF56AAo/L+YEyIgOSwZZpKwLHMUoOnNym37UYeMQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjUkYQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWUA//b6Jc/yymCmsUK2g2OJIKk1JyuX+wj/v600w/DSuS9L0rC3yW\r\nQoB7BNfbbknLyr4zshe3TeTpfIP0XCMtj3afgwFmTu/6hs0puFCRFEw56Xec\r\nx3gr0wcvzKuH84fZXY7R/jfXx6AurewsimRJilpO/eetW/LBa7xhvzPF8/9/\r\naKER4n6aw3j2kJhHxmlo204iNb5J3Lb1pZJzSMRvdvOgyfvSemh0rE4bjoNj\r\n46NhsAVOfa94SEb4bIgZCBagIvaXu0mfCQqScN5VgA4Y07byI5L4U+VFn8Vy\r\noWLxAsLXNvhhA9bPeHwXXzKu4BK3xXBl8wFdco4tWHo+4YUW0Bw6QWTAAxtU\r\nDt13LA1tEAUMgeYPNLHTAXM9WR9jYZvj1c4o/fOg0/HyJmf9hPO4TNnR6bNb\r\nrLZBjpVVIn27BZ5hub7xF8xf+qe3rMDmUQ8wPW9wKT2RImV2/5e4ZyWysWbv\r\nlCRp2z+foiZ5nzhpsLk+SSMcpNRK8OtoLNxDYr6oycBqCkE5l8oFjIBZTKmB\r\nB4r93icSZ1P6PhklWYtS/gTnM6lLCuyqr98ojmtDPw2NvrCHtRRrKxGrkPIe\r\n+JvHaMfPtdf7ZPrCXZpeK40oDm3LYv9ZaB5hX22WvqcZsfG08WKl6T0LOzJ4\r\nc/HxSMuLTqPuIhUGrWOUkI0ef3ptMvwatjc=\r\n=jmPf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221021.2_1666336272353_0.8285847979668755"},"_hasShrinkwrap":false},"0.2.1-dev-20221130.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.1-dev-20221130.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"9c43cfd4ab4d38f5284a7cd1d4a5b9b10ca3ed1d","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.1-dev-20221130.1","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-PFmJ2V5mPdcFd8L9YiPdn63XRgDCmyFObRGl5zucThMQ57Mp9+RmUqQjrwlLBz+HwfCy/IYZqxHYKYRLQNoC4Q==","shasum":"89048499e967980c6bc3d9ccdbca103ff281ffa0","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.1-dev-20221130.1.tgz","fileCount":6,"unpackedSize":3004500,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVf1fbkqGt/WUw00um8omPV5Z7PPRr4zn3bvyqjtBXcAiBhR2QgweTYgUJ/iYofgTo16R4Fe0MOLhx6DtiK4AOckQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhuyRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYLg/+IA9Oyq4wFF7p9vISDtlZZq0vAuIfz6nSvIb6fdXtDLKPIbB6\r\n88rdcdD0CN9I8OZM952PAZJ0EVlGC2ZB7vK+anT2i+n9SasG7eC/pBWg4BDD\r\nWxvCLq4KPTu33X+oMOFQmELHS5w4R2f4htHQxW0KNtctWpIH+B1BsklwdHjS\r\n2dQle5FHzNsIAahXdEBcZOtwRbsEdJYa3hOUpIsRKCJGk+DxtbWebJPCsl6W\r\nnf0pFvs51X9AYKr7OnFhO0GnOS03MXtGJMSucXIARubrSXOGSg8W+ru4V8fr\r\nDv2tEOcrUhf5nF01Rdl8AJWf4Qy8Snfl4RWEScXQeZv91VwMf3iDAdpuZ2tr\r\n4iC4qDz5mDBtLbxrl4J08QVK9KeD7IyDOuaztgpoT6VGAKujSiLW1aMBzX3e\r\nvomDdEBr8zOrwWUfacm+ejvfPeYE7FYhT+G0T3VJcSKk9ndAPEmeucRxEq+R\r\nN0btp8KLcghWZGO9ch7qKswPTu/ddh95RYvKSPj8SkV3QvMib48GWR29cTDt\r\ncoj7Sg0O4cHMnklJf3TMljdRuut+ipnxV+puI2cYMh3CskL1S3XXdppgJOF4\r\nZOEA1lmCPjE0XgKaSwZv/ML1eVX1wJk/zhoCysqZVypxZVDgENSr1vMUavaH\r\npH8AXFOmNPw1DPCXNQUD2mQf336BrmV/8TE=\r\n=Lu2S\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.1-dev-20221130.1_1669786769087_0.8098772096080427"},"_hasShrinkwrap":false},"0.2.2-dev-20230119.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.2-dev-20230119.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/rings-node.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create a ECDSA secret key. And put it to `.env` file:\n\n\t`rings-node new-secret-key`\n\n\t`echo <your security key> >> .env`\n\n* Run rings-node as daemon\n\n\n\t`rings-node-daemon run`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"40511af1b192fa8739107bf0436acf8d7c820b51","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.2-dev-20230119.0","_nodeVersion":"16.19.0","_npmVersion":"8.19.3","dist":{"integrity":"sha512-CX/srWsm07pV9HeP23s7BJPZHdb3VNQdvH37CeP9hzhQBZO8NW2Gct46IhecD/YYtlXkVBhhm12xP/4EgeKXCw==","shasum":"239b20f89ffc9611db1b2810c7e3bdd745428504","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.2-dev-20230119.0.tgz","fileCount":6,"unpackedSize":3047084,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4pd8vkmEwXVQe2omqiU5YxADvTu/Cnqp4sGdhVTgcEwIhAL6cF3o5tQlBaerTufe6+OHs77QBHYfL402zyICyr84G"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjyRJ0ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRrw/+PD0E+YMxX5Mk3UxpK16yqCeuoWDddNRZQQ6LBDQrkfHp9rno\r\nwfK33G7abyxUZXRC5V3RVmHRVjJB7GniKrL8wVvCrHuRX7McwKLnHe5aZj3h\r\n1xGY9V1Cv+o2G87N7fWE5MLmPqZ5ct/hAPq7T0bmMOqZzDU4VLI179ZPX3Pq\r\n9pvS1ecaL9S7se5G91ITTJ0jalZ0JB/OpuqSVL4afqbET75o5BT5tDK1GHJW\r\niKwTdBhDz32QmILsvKRAeLMxBjL185RQFkbUQgNtispNnSdZY04vJembLVwf\r\nnjKcr42fGD55aFs6lr2SujmXLP6ZLLW4oew1GKem4vmU744tDAiWy/PjnRtT\r\njV1Ul63/lgfc3ALJiRLiyy1xR/k4l4OX4SxX3E7Ni6BfkNOyAmx0GdhPEmJI\r\n+qHy8JAtilNDmvgBt2uaqeHWFTHeVACsXKA8oS01PLkOsSWnDXwy5lHRxuQS\r\n6wO+kEn9T9iaX2fH707wkv0pwXKoEP3vkhPSJ5/j+dZ34zMjiH6kxEtEsLuh\r\nz14wTc6w/v6KmrHujuwc/LP5NPP8aQxMU6/A1vY11TRnKUfhOGAP0wCbLUsu\r\nA+O2FyD/PczQJUjfsLv7/tWQoPtliXoBa2+5YMt0C4XKjtNrGsB6ivCqw7l1\r\nh8Dw8+B5xjPp+l7GTa3hvragOcn+dq0W7Tk=\r\n=enUa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.2-dev-20230119.0_1674121843827_0.20270576788087258"},"_hasShrinkwrap":false},"0.2.4-dev-20230221.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.4-dev-20230221.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"5cc334f0b1c6083d4641a250dd5a69984a67eb9e","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.4-dev-20230221.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-LhlRyroMWqOIq2LUlLye9UAljmZGE3aCdHmuD1oru/re5Gf4CE6JuOpAcdX1W78+sysD7sDF1EF3JI8QBc4ipg==","shasum":"40a2f0f2763a49945bcfa571b825941cd083f8de","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.4-dev-20230221.0.tgz","fileCount":6,"unpackedSize":3009358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBZn+VgonoyNpRmoG8BRIrdFWUWBYKUKxmWH2Sa5TrAAIgWzvEEoCCigcqcPdSUXbwRN1knK9RZevSdhOduimQFpI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9HOsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrY6w/+IUWTT1yn2LghdZFwE88i4hAMBduCECM5rzAqJ21EhaxCbEOp\r\nXLKHwuvPBHu4/7bRzyfaoZuHfJB8+PuuSEDMNpQk9zuqNJY4aIRfyq3AHaYG\r\n2PhVXgrZhJ5C8zr3MyCBdCUNybJHGuqEA/f4qKtS/JiVPvy46Z9enAt3yqmz\r\najxYjW4ACO6EcH7Jd2vW74Q3VfXpVBlggEm/XX5EOvRVEOdUEP6hxtq+hxVO\r\nFX+VtjhDb9HVa+Vt+iAvpqs9fOOY0Df9zY/ouMkun1x9RauAwpjjYlORrydX\r\nLW6XTb4J3cL1jAu01Txlh6up9M4wUqpZ5AfXijuG0tLVMNNFBmXj8f5gLvQO\r\nX2SGDQ2+Km+o+09SpSxvXkH6KW9TjVnjpQs2RwnRvjQSA7pkC4l9SnfO3TUZ\r\nrji2GVckCgnJsMytMV61fx6D1KTK/HFTt45JL40Nu732ob1QGL3V7druLctC\r\nhKa5e5CkPktHlkAhpTTUOXsY5VLTI/IjCLFtAC1FrLe80EwEelnqcFtSmxLW\r\nlJ0h9Aht4e9Xk9TyZz1VR9NThekTs9AfFO7GMb+IaRrE+ggFgKVYUpXLHuI7\r\nwjcnPjX1eQiTTDfm2Zb+rOjCXB7Ewe+oAWbjvTnkpWR7GFFFjUXGQtb/KgQz\r\ngGTCennQ8uh0Ab70gEgTc7/IhNthP5VssRs=\r\n=A6tn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.4-dev-20230221.0_1676964780296_0.6094918200740964"},"_hasShrinkwrap":false},"0.2.4-dev-20230306.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.4-dev-20230306.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"3fce2645e3ce397e5bb80865588748d48d71d5be","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.4-dev-20230306.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-gMZqBBuxehKqI3CeAB+Y8q8DFtHcrHQP0coEMivVjYunNRc49ZU/g4sk47UoS+XtyxEAphTsFn3YNKMOa4ECoQ==","shasum":"6bd27bad6e1675451789cce2c3dcc9661ccd2a67","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.4-dev-20230306.0.tgz","fileCount":6,"unpackedSize":3011436,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICLz30rHsjngDd9eXVpmOArQUTEnzlCtk8hCsIGvjzPVAiAstH7QqbPPJjQpAGQ8B5NDkIjZdBgzVHBgUkdSmmJkIQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBZXDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmreHxAAkSBdQV5dji7M+Yaios4WiSzqYG+drl2b81i3/nbhevcRjcCF\r\n0tuuHRmtELf0IwXO1I+QfTdnkmkrjXqomdmCmBQ0fl+N5b0ujR8IkK+bXHxM\r\npMJytgQTlhzp0xqoaCLppMpoSholTZ2cqMTjXYpXlNSL/7wI6e6tyrmDHUhn\r\n1q54Maf65c6t8HNhphuVd6d/ozzr/XfnES7zw/uxDSu0KW9bDAmNGzUzaASk\r\nvIwJ8JWvDXkiB6djhJQ3lG4FO1jjLlIY5ny3wRaE2t6BQTzutbiyLuEMkTyd\r\nxGmOq052/TplHACmk1nsujwnVrQ1zH/aGLIkr8URPF25z42l1ysb0wQoaRB5\r\ns0sd0FG1YDJ4cqCabqqcSd7YyJ8+W6kvctAZgZhmOQGBYP3XycYVlRKQYv7C\r\nkOmHEhEro1ky3sdNAskuHuIXa6jN6ypsR6j+LW9iNbVhD5ZrDmviUWSlPn3F\r\nCUpKIEpo1NvIEo+CSz4C3k1K0KPb+vIHhL1Dy/K3DzWEUtm0yk8Apr1bAAlQ\r\nYA+nStuWqKVj8ArxDO8/2fMtIytbsNMYtlResjtZ6QTU6PAC5PORN15uwZvV\r\nawlDmBg1/Qi8mvgJhoBDhkNrL5CsvtAVk2TcOuBroi82wlBhF7jFwWCL/BwX\r\n+Gx7P+F2P+Te5rmZr+uQo+LmdQLohZ6WHNQ=\r\n=vRyD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.4-dev-20230306.0_1678087619546_0.159324945801111"},"_hasShrinkwrap":false},"0.2.4-dev-20230307.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.4-dev-20230307.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"5e2dccdd8764991ad5f8d9d9e67435332d7aff54","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.4-dev-20230307.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-mMe4yzJCk7fYjVdUxfLwoPuicclSI99VNn9FS8r5cbkq3uoklkxdNVtexDQjI4Y0rzgx2A/3jWJYXOoHkqY7tQ==","shasum":"b33349f78a21cf345f685899ab1f97c7b0d63a07","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.4-dev-20230307.0.tgz","fileCount":6,"unpackedSize":3010559,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJNUV+cmT+GRbUDEoBzHfX4m/dCtvzLUjlD5FkLx0dFgIgPQVgA6ortUu+FGWSqkdOKqJl23b20XF5LiJMILPzrro="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBq3KACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpgqg/+OfIr5bvIh+HFFbCzaF+C/P+io0+bPB3EcPeRvzVx6jZXPUVG\r\nDUkRordOZIAXAq+waTByNQ2gRBHLLJ4SFzOy+LmC/TpL+pymtfPxqnQdC/hC\r\n9JKp5UT1zjhbQubM6TNoM/RSLY3io9bg5qSCkI15PnantCEn2a9AUiWz6iBG\r\nANM3jr639fYJuXTuYWgEdPct2CG8gg35VSJCCXJzYeHXAVr0BtVa2O+SvdEi\r\nntRG4XhcSQbtmRWdi/o1w5nd/VHZzvY/UnjhX/vnr+Ng2CG3S1OOT1Yi9XtG\r\nICjjvIUEkAZDPf1OjkYoPVUNFq9ch9MdUBa76ZIg6tDZ/ss55+jwf/z43kNk\r\n6cY+C31XtrBiy71fnu5I1EzMGrIvvWpiiZNPXXJAZt5n+/Au1G17l7iuzlQK\r\nxED00Uaf2IJEwpYt7A+MK0ySg0GQB/bFzCeBknbsRhCcUcEHKycp7qqlP0BA\r\nUEX7hHVEGDlhKzPZXge4SfFHptylnZRz6BL6Q7K6JPcL8EINPi3NbOOeoBr/\r\nivnDw76qJWMRWVrNyqFD3YZhs36IDW2mBqsADsCucx1sO/Z48N8rTHqp66wq\r\nzoBRCcRJ15jyNf2WRABfyOMXPUhSsw7bqEmDqa+9C419mQZQ1etn1rJSdejW\r\nSnnTB2dpFuCkNiZLqMD4nkpRG9bLVXjvD2I=\r\n=mCXy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.4-dev-20230307.0_1678159305705_0.06652419900260065"},"_hasShrinkwrap":false},"0.2.5-dev-20230322.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230322.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"7bad55b1211f2771556cea05afa75172f96299d7","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230322.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-uxpaoVji+MXQG6pVxjfJJzBaUNatf3NaSJXEmy843xLhbDmLw/Llfvrck5EBdq/ervUW0c3QSaOSqwg2DMPxyg==","shasum":"ebed1e6ec03ae47cb7165ca89e167b488dfdab6e","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230322.0.tgz","fileCount":6,"unpackedSize":3614433,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBbleJesnCP1j+znGtI+K4kbZ3uUUsix4SqoZ3XtqcaAiEAnSWJ2O7smun5RSnEmOrGcG3h2o8akVXjHeSB48hkRyk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGsjdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrIzw//aDL4USL6u6xixQeWf6KUjnwmRpHa2QuacY88pgd3vjHYeQ90\r\nGRw0+O8ERj8EPlBmM/B/FGXuCno3ySdpnDGj/wPMghKMTp/81lxQUpm5yMjk\r\nj6/QTC1sNMiriaJIStDWh5nw3d1NfBKvCyBJ2Kz1HcXG0MoI9mV8Z6DcN7is\r\nRuj+YMBIb/sfoD7WtDvlxUmvHWeCnXl9vsWVLVtKjeVGVUH6Et3PoVnX5ZVH\r\n2IzZAjfgaVeqHdP+odeMbHriihtj9Du/dqkucHneZaW92nBQqMHtSQEcLaoi\r\n5Gjpb0f2CQBAf0g82Kk5OPmNX8wxuWxbZYdUIG8yC3tMJ/yuAizz7yLB+tMi\r\nz98Z/ZZBd+hTkzrqnV4K1u6NvNXiQhFQTpODRu9drifhZvpg6twTiBmGchxs\r\nM0XFitXDWHwmnaCoYNTyxs9pnarceA2BW7oZnIiB9NKONunkd6dAb9DenVYt\r\nDGsWahDcu0L85NqWpqyhaAahTYxHBnuVBwxJ9BmiCZliPmYiyRPhZnS6QM6I\r\n65H8R8uB2yFQmb08klrLPe5z7JNC8cVkHQBXZXhvLTRQ9Yj2JAY2dk5DHlX9\r\nUU2fWopEw5txKREL3VwafmJ/W0vItgM2M/s29UE2J6P//Xx3/G6iKdRoGqNZ\r\nlMH17xoeuLIuKqgO/Q2u0yoy+KnxYDTdg94=\r\n=tx6j\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230322.0_1679476957123_0.7551991973522554"},"_hasShrinkwrap":false},"0.2.5-dev-20230322.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230322.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"b819353ce20d4e6db2d11cade73236834f6490fc","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230322.1","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-TGoG6brQ/ZQdZCvYAy5qKKUtXtG/nm1uxT9a4OPnAcV0cRqjmiqw/IAKAWLuyhKV3QS479ds+Gdv8LAU84RKOA==","shasum":"d617a2862bb725a56d7152cb603d9298c273f1bb","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230322.1.tgz","fileCount":6,"unpackedSize":3614708,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHF2lmNt0Nrz5x9Dv+pLdoqlwCll0Dhtn77iv+oGwTLJAiA3OxFiTIYXBkpY0Xssgt6l51iGhUDHw1LZbjwwA13Uxg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGs2eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrnYw/+JCI/80pOzv7eCBInRbZpViVCcwMa+0nVDfjLPsHtDp2TrP0g\r\np/R5IOQ6sy1B2ZLphLrHSq+y0RdQIllehHaWuz/S276u+jJ8tPCTRkZKtoRr\r\nmMvrwFsEqsMepHciaHWgr32xeAE7V6lZDp8gsX3vXRIijGWKet4nl4ZDREh+\r\neRqcZ5drOPmy9RcQMSCUMWI+Qjgjth33WPZkhT07ys3sMyLZnPzywHGaO8gL\r\n04xjUzA8riMkLtoXNf44EQRvh3rob6G0V8Fz0NmXr53IABQD7e+9Q/6OX0O4\r\nlvD7hxj3FV3UPBzdRqPlJlmQMkCqn5+KEjOoaboUnJv2umOHxKHjIRMdnPWH\r\nRTgTBfnZDAHjLctm97GrT1sQQAWRac3USti0bckknSDlM24dBejcgNREl946\r\nrkw0kZDuANZ25oGwTKc9bDsRcNweE6Bg4thzMJjrX3DRjni87pDmclBvX3hr\r\nfEYOxEw6VJxAOFnMlfYTEMbj4KnCraXZKre4hXsAQuChNM5M3K3RvBafP0Xo\r\n8gy6BJUcxn7kXmwPNV51E9+KsFLRAkkTQuN+ZEp2HWlNw03OiCfYBg4H5HA/\r\nBVodwV6TV8itmjErHXvl/tG1eGceuNI8km8ki3AIRy1r8GL44P/Ve/xIupk5\r\n3QSehG3s0wPvYFngzPcKXCBqmz1nHP+Ia3A=\r\n=G9Gk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230322.1_1679478174711_0.2994105282074997"},"_hasShrinkwrap":false},"0.2.5-dev-20230322.2":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230322.2","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"7e7fe1bcd396ead2c90b9a1ee64f67577f7af355","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230322.2","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-aSB6kb6cr8Puqth3VbA12nZOcsB4pLp0Yf9L65wF+5cVtiatDYZfn6jCITwQ+SlBW/hcy78P/AjWIHlhO0G/Vw==","shasum":"9cc81ed329d4f0f370929b4e740c8355f48ab364","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230322.2.tgz","fileCount":6,"unpackedSize":3617514,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCajLrK8Sa/sFeKyjAOoghUkAuYCeoHohhqQux7J1xleAIhAOYlIlcET+nUsXXHtUvFy6EBtNrPtSMby6fZVKqWjQZv"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGuZsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpBIw/+OenJdXdxleCQd8gq/Xv9NsIsILw3s/Nl7wcn0rUzPZjqfC5Q\r\nDBA44dv+gld4vVWmiGyVGAwKD1FEtwt27rd06v44Kc20YnLFXO+mTkE6MA03\r\nNATgqD60sTlCmv3m/ZPH+FXXYqnXtQvumXy+iunZg2qkz2676qGbiGEM51uP\r\nq+skCcWPUyP5a2eKWhon18CTezBkedA6oL7j+9+SNRiyToEepKsSL5H6l0M8\r\nWawbZtmreNmH1DJl+eRyUJU1bAQfnIi77PmbhhdvbE/sTTLcAKwNR4mfnTaA\r\n+WfSQnN9Lr91rXpqTdaqRD9i/RXSbZOnfStMEbbwiE+EaRmnL3yV4pZKwDWo\r\n+CnAWW7/0UCfJIdG2wwJXq+32lkAt92FZUgmsYammLA0gAIP+5oXk57nqWyn\r\nf4C/Lq+ZLy4QXx97ERx25Kc3mrAVm3enzzllb41MeAb79LEIEHBKfmqbSCl7\r\neyBb8iQbQhTVShDXL1ZKySQ1H9m2F3Zd+WjTIhsFi7Pmhq6pnFur2nUznH4j\r\nEJb7uzQQVd6hLMvC/U+D+VkHDOtzitX/Bv/uvMgb7hFSf7pBVGY5VsBpAHAV\r\nEkXOXniDuVqVONIhpwkGWFFKhxYeZSgu7nGZONEcXCD26EPunKSEDw2WYZ4P\r\nagLE7NGd7IWhdz6qiIDy3H2lyMVWtOj6IHg=\r\n=ebQZ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230322.2_1679484523840_0.23842673736339526"},"_hasShrinkwrap":false},"0.2.5-dev-20230323.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230323.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"526fc031a87eb3abfde2476cf9e44718d007010b","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230323.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-EHxVO6h25OGCueJIm3Jtu8ZHJ3Yj2UIyHh9I+7QnzJsfD3Y42m3tvo+aqF0PVPyjUSOUeDXfGizOcTkGng49bg==","shasum":"d554510d8ce5cc26ca1604ffd7c343c6a19f37b0","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230323.0.tgz","fileCount":6,"unpackedSize":3619566,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHAMw1Py760H52v0WQ/++bDbVMS8R3ocTkCpfNT/61umAiEA1rHdeCke+3kyYw6poKXwQFDiR+QCM7WuNRcQzI+qZz8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkG9SJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrGQ/5ABlJj7NC01xoUdquYHjQAZpX1+BIgJ6YrQmziDJL3ywsIj/v\r\nyHr9znvcEG4Q9UG6/30QnTJFifNlSZrDGACpi96RyEBUxegQNNVQoEEBQS3t\r\nki9EE8UH56CnqnYvcrq2k9Fz3tyHvkYccjD/XjV1KQyTftJl7jwsk/6/82Cm\r\npU8Wp0u/bjPKXocggSGE5VU1m2PZv5Z2hKQtEwFoJk/4CXeojqJkUt/2fEii\r\nBY1BcTHWsm1l2qR7nTvF7QI9FpMJpeJPeSVfgsRBkxTL5K319aqiZhnkG+98\r\nDSlo2MsHRJq2zaqzDw1LRnQIt51IphSYZW3M01OJG2pvy3RfZ4rv/gCZXEJ9\r\neX80PW45f0Dp5cgzjV+F7rXAfbzxryePGARyv/3mWXN5xEHII092GQ8UyUts\r\nl7OQB3uY91kgZkU97rXfRSeiAfU852gou10iQwQqJEuAlbWwaBUzI+JD56Ju\r\nRQjceOEBU3a+XO2CnQMKof2riIyE5m5XrVhUQe52wafMN17sTtrlClEbhRSE\r\nSEU/CGCQMPngUixRRuIds6Sbs8zdNvfskgETGYb3XD5w9ZvKwqDMZjU5X8s0\r\nueu7LAWwjJmtelhGClOCSa1oh3wuhNfXPJyKsxgH8NXc1+Hh21bK0slVl5ki\r\nzbqmKZ7ndyN4PB/7cqhTe2rfJ3eiRgAOOAI=\r\n=sFJp\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230323.0_1679545481413_0.4982142137272425"},"_hasShrinkwrap":false},"0.2.5-dev-20230323.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230323.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"5e0adf09c4b81908b2daf5e9c4b42df0ee7f89b4","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230323.1","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-gc3AgyJNie++eVVZnMG5y/qjufmvWtDf6nFfcyntK4OpZ+5koxs8F66v7xpYx3sZ7k8O4afp4iG+gyomonVenQ==","shasum":"f111eb887c5ab54432cbbf4daec2eb3bc8e4e08d","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230323.1.tgz","fileCount":6,"unpackedSize":3620409,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICc1Nr3WUzUvQeOXdswhjYIRSSvk/eLini8iLOOp11LgAiA7YO4nDe+hGUf9cmcQ4uKvJPaQ/HXG7a1/rwJNIYXAiw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHBw1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGVhAAkgSZmI7g9z2J973oTxCjLB14ywOxLerO/uu11h0kHJ/G/O4b\r\nw6c8HMShzLN9frbtrBj/IKBYP8s0gydH6ZRC/sWeq1d1nGnFlFoS8GT30TEY\r\neHgmjcRAhq6RKdE5p3CxG1mWMQYyOwynqJ+b6qm/n6v632GAO/KW0lZHS/4f\r\nbf0YKzupMhGLQoty9t6AgPj0Msv3vQ9yCvNSp2aez7TWmmWyBEIu/lvSMBKr\r\nn1Hd1hc207LVTiFomLl4y2J/irbayX/rl7GaOhy49z/kGZmPjZU4ikZ12VUY\r\n7QjF7kR7W4gzhgPRXxC1CL7AfOGc/ZMhHNOdF0/0lxx97HAgpM6R7MDT70BW\r\nxU86QIXSWA9aY6gfd0t3nzQQjgFKqVL8zohFqABnYfLaaxjufatbcxwPqJ9f\r\niTRoM/nuIZZd3LhlCIY9glqPqkBGBJt5D13eeD1ae+mjZGPJH6Ny4Reh+brx\r\nfUoizlAj2iJ/wJMeH/yHmJydNtdsLjsa8790WYfIkDvqXSAMyeZAVJgELIPO\r\n1fafrTNKHqPNKfUUDOrrVMRMMvrAoxjHOXojCpJByTernp6hL7ullF9ROfum\r\ndIUVQVHLSx2ApAUmr6VxwCeVEqfIok81jiKGoVkyRx3HbmzD1+6nCXE6PWeA\r\nb1ViEjsxDlnHZD64iGmUNTbzueoC8UtNttw=\r\n=/039\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230323.1_1679563829182_0.5777353849340923"},"_hasShrinkwrap":false},"0.2.5-bundler-20230328.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-bundler-20230328.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"e4ee88ecd7df4c6a67aa97074efc90c999645c3f","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-bundler-20230328.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-txZTfGu9EBT9dnkx74o+FL5dZS8qRAXQjzxwi9i63+fpRlGK0qWElCYUk7isE8NpernO1BBswx2qfygBKIlH1A==","shasum":"09c466da43b73f265120046aef2937bdb7841542","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-bundler-20230328.0.tgz","fileCount":6,"unpackedSize":3548885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChEoYqz8dL0w4/Kkh6fZ5YN4GN2EM9p5poI3D2i46egAiBjk5OUr7pmBtlsggP3iDb7R2GbVB1Ro5cIv/N39Hv8Hg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIvPPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsxxAAkWiCj8SEuO43IgXho4arfQwp6IPSo/1QDf1HwuAgdysWp59S\r\njM1xbFROvEYIsiwYRZ0pUnDJD5XUxZxeBjRjQvYwFfUeanxJ5dz/DRjh6939\r\n/JJExBcFTzO7VP7FfDCTOeVaRjdUWeXOzmZeNMFyNaSVh2DecOnvuFocj+Gn\r\ntbbqKmdmT0MYPkE2+RzOjs32WjZgQa3+uWasjU9mRZ24mFbhzP604jdUnGTs\r\nPkdBZ8166jgnzc9Dv8FB8srV2+fbQCrf9OIifiqiJj0peclkU0bsRFDlNd/4\r\noO0nenTjDGPwIG4BODCQ5IYLymUs1+J4MQFxJwSMUrd4CQWIk22SjMs+Aq16\r\n+gKGoLgYNLolphSIMKl+N++pJAE2s5x8c3p/An41hwdsdZjL2ux78utzIwpX\r\nsuV16KVlSOUrPbPpULl9QTP1SowsLmii3PJubJF+ck2gW1XZzAp9deDMb2QD\r\nRw85SipICFklGNQnkwCe4LUfKYB7+VYzTAiZ3MkTXvYHphNbE+kX3lHpGFoZ\r\nE5e/TMiujzCLv07GapWdnmEFaH3FfJ5xMLMR39QcUHqIMLaM6AZqqvptGfzC\r\nPdd6YUTYd14kJdhkdN06DG/73wnwja6NW06cbcobiL7wXnWO3azqByiI/zAW\r\nNdPxgG9m37MsTN3T1Qd3qYhVg3e5Wk/hGgU=\r\n=7Jq2\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-bundler-20230328.0_1680012239642_0.554708733299039"},"_hasShrinkwrap":false},"0.2.5-dev-20230329.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230329.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"f80d67804c1c7f3dcd9937157b82bd53726090b9","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230329.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-8WS4ZJr4S4XCqOyMAYhJfvCVHX1uoWYLHSHAO5d0gUXUOHt5ctO6zWPoWJ/S4cg/dpqe6LNYsgluZrL6ZqxkGw==","shasum":"12a18504661e87044a50c6c1b28458f321d04d7a","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230329.0.tgz","fileCount":6,"unpackedSize":3626686,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMDjuWCRDKV0/tZdOVuYw3YF0W91hrhUYM0Sep7y9BFgIgaWNOmETjCrax4cgV4Iqlhpo0j47nMXN/W32f4VDaeBE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkI8XxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/IQ/7BvcSIlageLafJsQ9bglzEp/coddx0rRtvP/UeFNmM9NSMzsk\r\n0Xweqxkr5HOt6A9gM+7d3VQgackz2vNhWlMXtNfVBAX9bvyJ5G/WY0cTGqKc\r\n6tOQLSiJZLvAEr6Apd2Ex3lmXlivV7Lqu+OigMxjpYp6UX+JcC6bFF3Jisfu\r\ncskswYlvjX2fDh2tWd6rWqIKbnNTniRXSHfFdpii/axct4cQgE/4J+9Z0e2d\r\n9UFfRr+yG8yli9e1oEDLyhprpQ1j6fEgDf+yQBRPNOkFDBqrObkWA8j1xSeY\r\nerdb8B3iInPCfYFBsKlWayClLR633qOps8aAgfihHIfMvcR2uL//p1LLGlrU\r\n3E2cDbaBlekrJvgMjAtqft9sNhKvDD4FrJ8vkbaYTXY31dRaVNT5Y1SMHhVs\r\nzaJSJXom5WnZUvTwxwXSe5pjLmu2teW7bWg71zvxU1qiu+cdxGn5xhOZUeEh\r\nWE5nvq9Cqc9N9nM5gThxCfY74n1c8v4RhJCFJn9qkbnHnYyUD/UtaN7zQmcR\r\nH5S6pgnpWhoxu4u3ijf/CAHSBw5ESkdBBVutn32pv9YwjYJ3vCw3aOrMmEX7\r\nAjdwDr5AKfaoEfD8F0r7KONc2BRkFqhYephzeCrRnCnC4Ev6pgoMFPuzsbix\r\nKdKbON3Ya6QoKsbeKigjV1uiaWnf8hK7P4g=\r\n=cMVk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230329.0_1680066033527_0.4651845447680296"},"_hasShrinkwrap":false},"0.2.5-dev-20230329.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230329.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"f80d67804c1c7f3dcd9937157b82bd53726090b9","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230329.1","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-Xc/31UIHpHO9wSxLCpiMqkrG03woRqS0+hKJOMWUBKAPlb00McXK1496MjreHggkcFhu3DIOj2JZE0WhcYvSag==","shasum":"f5c931dca0a2d21f36151402f90393ea0b06d277","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230329.1.tgz","fileCount":6,"unpackedSize":3626600,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuln6DnJAtAE5V4IKixLLFVkDUY1ImseAhHWe9bPlAuQIhALnBschUMpjh65YWiocUsq936qjn80pP8bcvqy9Tanv+"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJDx2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmptuw//dWhRQWVc34G2V6AXCEjrnxfJ1xFwbFNbTLTHrS5nnoZaWccd\r\nkLJUKvGl8FPwZ2blalFquOREDmRQgZW79k8x+aVFRsRd2gFE5cFV90OiHokZ\r\njeTdV4ww08i1XJh1dPLKdiYvZoCOp/7sryGIVsfA4anaAg4uSpuzorHAsLBr\r\nAh4fdl8Pn0OPd12QPuiRpf2CNpIo8BMcX6WgjWBq2Z6ou46Npa6TkJrQhtGZ\r\noh8Ctc4o0AeL8ecw3YzBmPlNRm7tXh3jmx/nJRr0MXzsSeZsO+jr2btOsqA+\r\nESOSdun0m6BeF8DA7HEdvI7jDsDODeGmBbfc3bZVGEKEuieGTJomPK6GDolq\r\n35iem1hiyKKuD+n24kIJ0UeORgZ4uoJSIu5zfUnCLGlQl3JvCSStgFmEVpaN\r\nwxA6y00b0QPOL28LqYScUr6vs2T9wH9iknP0kqJGVtungjPCXHgLbYUfTnqI\r\nVABgpuY44uLrorkSR2uDgB4V+KASTttFwtNHMxkla7Sdv0IVjizsHZKIGMQI\r\n32HSct4x/SOz6+cpjNB+oIQm25RgHkz3hguScv8dNhf6cgsK1yWG8J/eMVwS\r\nSzHeIhGalgzsGwr2GNc1zevMojn6o1KpgbD7hYYJ7xsHOQKJqXjAKDkUZbR4\r\nB0KLLOa2b5eNWFGAwUPezHx5TsEsCL5+Qjc=\r\n=c7ge\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230329.1_1680096373958_0.7700152312470978"},"_hasShrinkwrap":false},"0.2.5-dev-20230331.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230331.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"fbd3469f05e7bb2cff2537d554419706a18b3743","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230331.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ERov+MHFNUy+rUQB1OpnU2DUZ6u2oCqrZVEq2gNVg4QuMraDRVp064xYq/pJHvD21cQWLvhEzYRB4nbr1OvCFg==","shasum":"3fb5b915bce769a576b6d34bf3a0ad47d6041976","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230331.0.tgz","fileCount":6,"unpackedSize":3627082,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJgiEHIqPs9a18Fk4lKGaGfbqUfYhqoQWAonkmA22+lwIhANQ5S9oJd9oBN3cei7ePnznF3hgVv8iXF2GWDqWFuLmg"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJm1SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmos+A/+NAETzj1cSFeOPbkZpWGJMhQ2w/u/Ja8ETKhVbAZ42zeXXeAH\r\nIoD0iJECzkt4Iq7IeCJLLWyZf/782WEW2OuJL/hYVlACcMJ0hUCxFvflHqfQ\r\n87L5/DIOwgFutIiAeUFtzbxkTktBkpWtN4FwE4U2Xin0qhTfmapVqiO2o4jv\r\nYh5tV1WEZuryWJ1zV7SHFGw11rnoZR9roTybNfNh4jVqAN4LLblZxM36AA1a\r\nL9fJyoIKRDEoY+FA4e1cpromFhBSloJcqjxaUMz65pZyCfh5ms83jKUNZNej\r\nJtDL+yH0ZFFSrRVyDPQ91pHbQSPy8xC9DvVkhwoxiIpf2i6WAomqXm3zA+ob\r\ndi6JmRF2j6JyLEbSVzqKlU/8yK8QsS6qwDGromC2ljaH9eNGPBGMEn+RJZ4a\r\nlnBVDOo85ubw1YnVGA5WIibis7wFuDT+DvCG0j2K3vwEPV9CLuOu6sAsF2Mq\r\nYmwSWlVjFOFoiQB2UbEFvi1LA2+a99RUMBkIPcWUa0HVg9u0pJ+iS3Pg9ogd\r\nkjtuMyr19re2G4X40DBoFewlRhvB1uE6jMao+wpRtxIrXYkwbp3hKSoxit7Y\r\n9b7fAGGySejfz9/+THXN8IE+Eg3v8r3pr3qSHNDwYgWEr95maBTpXqHjwIvl\r\nYeEEDoug0v4JaeGRCqGLcLlRqnQUwcjE25I=\r\n=QZ0Y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230331.0_1680239954014_0.6375528612811614"},"_hasShrinkwrap":false},"0.2.5-dev-20230411.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230411.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"f60065b6dbfed42663b709b0955dc9ecd86b9da2","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230411.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-uP6m5mrEiNOT+YXs1eOgCghoYtYJjBXtCBAYtq3n98u5f3ekzUATaNKO+Ht7qq0IZZj5+pK7ihQMqCsCLsRjSA==","shasum":"b73088a356ece8c7a02145457d58afe16f65ad4c","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230411.0.tgz","fileCount":6,"unpackedSize":3661453,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCIBn4eLnOKIfGX5kmxwP0IUGg+LLIMDQeXhbPV9xhlwIhAI58H8t1uJgEZZp55UriZvjGTQOtAive2GhEF8ymIeVn"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNTWkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpkIw/7BuAFdJFty3G0AJvSnefkPFl7F3blzOCLAduZ12fy460lvf8I\r\nrXfphJWvqGaVQohYL43/MBjnSokVPt9rLFXLk9C+5j/Y7BnyJdg9eu2bAjx7\r\nseCdpvXZWS8610G1VqJEsr10ux42DfD68iw++Sd/LdZ0LrPNbA3hqv542Z42\r\nRkthd8jBCqX1CQ3XguWMcMW2B3wQYxqzh3OxwCrn9/vrfsc3D4F9yYkQ33Hw\r\nyqsExEq84fLeh/b1Gsz5PScnSDDTtwl95SHkguZ2gWNNSSjDaj9apasMLl0S\r\nNwOsciw9Jb2Zcsc7zQyq5por/+zdi/pAOVgCee0Ir4oEd2ZVkgvg197oeqF/\r\nBwUTWfENpjrKMrsLbYczTs9zxfwSsQAXKgmiL+S3bzh2nciMqv/q2IZ0gI/F\r\n/syDK7ALTiYq5ztJ2w/XM0OE17VKQhD390qnSXNdor3KfouDfcrL5Q5fHc61\r\npcRvlrUQaBoMoVvGHkRpjQK30aNhFjT/g8KGTI8730D9iQFDPY3daUrWXSFw\r\nMM9rf9dw2DEqcSBp/uYRwfJXhqDXy9Jsf6XrcttNFL3PK2GePDe5NcGpgT6g\r\n5TIktAgLriHnGGCfawr9RIQUXsMfA4yLxzj9yp9Szet/sdbjxVVOn6l230B3\r\nnA9OJ8uzhbsyGSRGHcQheWT87prjJZKdc1c=\r\n=ox9g\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230411.0_1681208740220_0.434570622104834"},"_hasShrinkwrap":false},"0.2.5-dev-20230412.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230412.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"8e7dcbfaf4d1cfb9f30e6c93f0d789f588a30236","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230412.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Iumc79eri9GCPpb8YOKQ/qp+8+v76FWzLeGeJQx/+JLq/luqFy48pUPgkuKozdP9pHOBT1MTIUWPP9/Y2soKLg==","shasum":"a9ddad8a3dbd370d3650e2df9423d53d6100adfe","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230412.0.tgz","fileCount":6,"unpackedSize":3665437,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBXbPGhBGw4eUilckpj33NxD97ANBX+TjnkOfAG51mbwIhAMf0ML6piNgTKdhV4oZTe8nuOxj2SelheoiAFai93LGx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkNeHtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrGrg/8Cr0LCMN/DYKL2hIMywbecR5Di4+EdE/ZOpnzBA0iruXqHyAB\r\ns8ele5ChJlP5LdeHC3viMC28KXXBgGAVMfhQ8LesfdofGbDmW8sUjcK1c5Eq\r\n95R8OU3whO2G63+PErGXP4U3PMd8kQC34dKKEW52qaFuM4NNpAyIdohZvH4Q\r\nZw5Q+M6ZTykaCn8vDJ6LTKWVV7tlxoUmfQV9eBe5JLQTaabdiQeJCxOhB17b\r\nHPfoB+Kdz7TCikgHNCCfl2YKi2NfsRMwokvfYN7e8auLG9zx6EAGZzwIB5n2\r\n1j1eXLkyyx46Q/xn8uqUUffN49rw4LD4/ULE576D8nQEzpse1X52I6vEM3lX\r\nuDrwm3WaEOw56jpEEI127qI+yTbHgjSP6ZDBYeXyw+qtEhArOlb2xRO/SuWX\r\nj9t96H1aB2Fd4e8nZcoHto5OhjSe0dV+4BTLyIkFZeEk3+aRDfiGVRL3dmjr\r\ndsOErE5aqIO7DES2iWAEm7eV7MfoUljcHmrAMVqMA2vyMjJoAn9EW1oOKtIt\r\n7c3jePJRtUG0yqsc0ETQAGs9NuUhNIWFeMKtBlr7i+PSFHpPQ4o+EeACrHtp\r\n3c7tNx2OEjPbvkUbPMFaXxPSXSpK1UydzUSr66T6lpOa4fAaVQ9gEpAM+h9j\r\nw4cDkGMcakS+YZTPACQ44j19G2szuPdqb7Y=\r\n=ppnL\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230412.0_1681252845362_0.2373678563167001"},"_hasShrinkwrap":false},"0.2.5-dev-20230419.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230419.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"45e7931b01f47f56007d9dea458976c4a3a6bc98","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230419.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-16u9XFN7r9pKZOwIz3VB46cQbo8MsG26iwDhVBPK4btT3MBvnunLH4ZV3D5h1YqWM9RiptUj4qxxOBIB1TZQcQ==","shasum":"bb9aec3fae589d173c1acac872c2a9316185e70e","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230419.0.tgz","fileCount":6,"unpackedSize":3662173,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCseD+SkH9P7BzYMy9rdtTVYvdMmad0YB1cJW7c9tLlWQIhAOhvkbRdnAXtB4mqQR3NCE1wa5TUzDN2IWQPnlhHSBrP"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkP2hiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLhw/8Dwnys3Q07y4MvhDbUriaYkG0hv1CuPx/AOIJaa9PSNLPSX21\r\n+nX9Wc9e6H1TJ7wupiIirYrmhiLVStDwxOS2xYJ+i4vJiXAUwtsqhKoTMMj0\r\nIKNd9USf/C5QAUWiX/uZjlDiKoHXqupBa50s1Qpfo1yyHmfLlqvFLZaGXJXp\r\neuYXecGYq0U9Th5bB8cZV7+T1AZmwiHtTrJB9dHdZ/x4Mj3d4lfkw78Y7JnG\r\n6UKSOFY3x2O0V5ozy0wdcImCiG5GjJ+z7szZM5vR3aISgHosvnyHYwcp1mp0\r\nUTLJ5OBAUzqYKj+7SROsP+CnKWn5twZZU6BAW6iGwZulsr6JN7MS7xTd6Eny\r\n/DqyqWVvuhi7/NC8xzr+xPnUDftyUiw1YQWoBp7B1AZ3MAwfCfguqzNIySQb\r\n79utBk6PWw88Mnb01rGvRW0CJGZwpZAXc/LVCP1+qdxG/tn18NPSYYM/dy9F\r\nC/A5A7NwsDF9Ntvrcb1utISEEqZM6bGwe1R9UAsPC6GAqqZ16oV96yijud6b\r\n++iIpmhdbpQ32qvaab+SLJiZaxpqFhOjWypqZjHj5UgXm3aOVeEduz3UZDv6\r\nlICVOTxBmQ/1eSq3vFQhkiXFkZeBTUhaXBAx5nwRRw0t4RhlsG8U80R9CdQF\r\nLOKVnoNSXpK0tUHGi7svRzAO4nvyd0IbD5Y=\r\n=shpf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230419.0_1681877090565_0.7918551896058506"},"_hasShrinkwrap":false},"0.2.5-web-20230426.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-web-20230426.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"cd512fbe2d1adef1947f5f22cfb0770f1cabab81","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-web-20230426.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KanWSlsSRrNT7GeokQ3LhcSXBlYRVb9/gXh4x+/TGiUWdks+0qe4vcNPhtcIxLvEjYQ1dIiYOZQMcQjsO+ow9A==","shasum":"b08ff1eab8fd0c3d7047588f7be4d2b0aef23043","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-web-20230426.0.tgz","fileCount":6,"unpackedSize":3687307,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAjunsnSUWEVGUT+g/ZQXi9uubZzYxjKCQix66KjDGuFAiBfQm5ZQf7D0amORQJElUvCtct5BFs3u8HE0Stc8ZZynA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSNcYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVBRAAmTSY6fmifL/fjk+HymtnzuQucp50HP8npyunEPxChTyxaZUn\r\nRhJ1J4CziOa6LBsOvNw814AvFiiXsvN9/59bmIHcFuQPxC4N1aNfTK+NCoAp\r\nKnxuyG34oDk/u5XLPRWWBHIZ4Eu7eVYZ6Is5tEwv88tMN65y2RtWJD9u6Ch+\r\nOMK6xsrAaPczd9yH6uiFslKxrLqfj5VaFIfHfuCtUviqFUoQtvTGhjHf9V7S\r\nl61GoQbjQ32qtKFzG4OFY5iBC0Hjv1U42oPO3xS9fKxjvvbly6yoj5XRJ888\r\nwP18azY0t24a6PbQvwoZfvi2fXGyyPnYPOJnf7qWeqv0hZSK0uMM4o4brFSR\r\nzhyGaajGb27f8wtUp5/wv0qzHFFgTOsgWHgCRfWOpyShXxcc5pq4q6PYLp/g\r\np95sjCp8Rq3Xp8iBO+2ncO9qiDVUNPfkuhW9J5SYs6peThAKrAlzwynmB90D\r\nVCqarDpqSAwxvCRlMzj5lmUYI5eR2geYG7xN8mdcGodVhwRCEuMDssEvHFqy\r\nkdg07vjN5ErdstdV3B90oGKfeLJCbgpN4wnvxQWe6EFZznr/KLkybltdM56Q\r\nX8kaYaS6Rbug1FoBc5iBKldwAwAO9R7my5zORDBA2rpStCdGI5Mvf1eqniSN\r\n16l0osTVnqlAFXyVKAmAlwKkjyiVV3IGfHg=\r\n=O4m7\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-web-20230426.0_1682495255942_0.04057776747962549"},"_hasShrinkwrap":false},"0.2.5-bundler-20230426.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-bundler-20230426.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"cd512fbe2d1adef1947f5f22cfb0770f1cabab81","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-bundler-20230426.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-xCcIuaM1yMebl1JkTAmK/1ACT+Ns/nQ4nIaGBujYw+SRTjyWaLhN9xJuI/Rrg8fXU6Xjw79QdKuqc0iPkg9hLw==","shasum":"5c4d75d315629d659f438efacae9da5e52ca0fe5","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-bundler-20230426.0.tgz","fileCount":6,"unpackedSize":3613347,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHnBwN4/Xw4Wl/LTX9l6/RGRuQ/MnSkD7AUVBo9UFy59AiAEaAiRA29d28DEhdsz5/7cv+kEjnjsNjlAIxZKIZqDgg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSNdHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXGA/8CKY7LGMt8Kf6t2Aqz+MDM/gLoF5lMnyyP4zcHYzzuc7L660g\r\nuNtbybYFVHlrQTbEwSYZwuOz+JJqgRLXfW/MBee97zLWwcqPKb+xeyjtx4UN\r\nX6nf8vK/fk4Mqjj1TMhkQ2icGyT3Q0dl9vEFMsfohgmpSREXuzA8XkCT0BCf\r\nD0Y/o7ut+CcHW2gzOfw+1kduiDiq+uYKgKggg+ZR839cW//zEvu6QgQ8t3p4\r\nW43ZUNs1+G9WDfKbk5pmfBG06Abkp2h5Tev9jQvOzyVZe0aJiyt8CxPy94U9\r\nwwgrmaqsS9L1+iUok4++GsM85a+Opl7TeK0wtksXHKqYMsKD4mPTHmWG6a2j\r\n6acpNoqP2ZcDgXDug0po9wMfBLq7xxHoxGSR1BEV4GtmMEfxODnEV5GhzTOf\r\nf52fe/80bSH8yLh+QWryUDpqcjf7u2i89J3EsvyeIUDaSzzMAX3xvLd/p2PV\r\n/DMeegKydIxuogF9YUG/o7BVJrHSZ3vMyt7sH1bvnfcvAd+RFQpnXs31sIp6\r\nLYpCV3Hs8Y2bEnO0tJ+Sk1R6YP3SQb4TB4X91A31Kpk/zyHpIaZ3qaVHGJyn\r\nJ59VwJxkF1kSoAhM8UxLyxdUivX6dpBb2Kt+x9RbiBf4T5iPj28yzoubH7Nn\r\n+2f2yThqynAr9ZlEDMh7HuQvO76nUUJe51o=\r\n=F1Ps\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-bundler-20230426.0_1682495302779_0.3697255760089915"},"_hasShrinkwrap":false},"0.2.5-no-modules-20230426.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-no-modules-20230426.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"cd512fbe2d1adef1947f5f22cfb0770f1cabab81","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-no-modules-20230426.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-V2gbQyo5rpV9UvCkg8EEJqgUCISWczNFNn7fuCv/pj4PWZO7L0uFFFHQJTbh/DneZVERxj/dWhY34A7TvCf1dg==","shasum":"307a289b0b919320c58f67163d896fcc26365a03","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-no-modules-20230426.0.tgz","fileCount":6,"unpackedSize":3687884,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGufd5zYnu/QNYR9F3mvdPxxBpmHzHeDwQrqpH4mKVvGAiEAzg9Mr5SzrhHXavHiQT60aFss9UYWnkUYHv3G80208cc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSNgLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrJ5Q//YNdkthLlVwrCrrdmYFhxboqno8Qas7FbB88a9+a8dWuppga6\r\nAkHtEpl4NTH6CX+CW2l3ai8CYzTO0GNyXAsSEVIyz2BYaDXSGmUvLDiPEF9/\r\nrvuvQ5TYZ6bFFJCtt61PUe4U958GQxvbcdjU9WYePJGizuyy1k9UuxUwqKwa\r\nrYb7C68edMcF9B5sWo77+y2QeEupDcSHxdyUyyTraEJnqtXPSwboMQuJuet6\r\nT5BuQPXv564+31p8UmboyQScC0R/qs/TC9osDgBgY8SUFcdnGo+RzmxRnz1U\r\ng6JRobT66+u3AdGXcyPxHNZi6PTIt5hkibEOWs+sgR5jUI89vpGk5t9bqahV\r\nJ44Jchrv0A876PZRjNUGJXBIq91qQUW9NupO+ZwLmWwA4EH8QNyr3KvR23UM\r\nJZgLa4W5KAt1ejRItrlSVPU27vhlhmNYnVers7U+EoV/Sh1ngF96mHYaTfv2\r\nyRtAq+RH6CizlEJ8ilNvHKIaSsTypFfATEtwhXDpC+CWDrpwTClxrCPUDTi7\r\nxXdAqJxUPiQ17M7Jxuk95PHb0D/3PIal126AAjz7HA6iDBwChIGxOtmnL2ar\r\ngltMb4tAwW/nEk01tqj8L3oNgAU+Qji3vOof6L5QTyzOK1S6FtA5jtlLrKn1\r\ndBMsSQuQTQqGCOk80YnHHtMBQlIawY1cRDw=\r\n=7FBJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-no-modules-20230426.0_1682495499437_0.8035670896850102"},"_hasShrinkwrap":false},"0.2.5-nodejs-20230426.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-nodejs-20230426.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"cd512fbe2d1adef1947f5f22cfb0770f1cabab81","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-nodejs-20230426.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-NIH4ARRLO3JcQZjiFiQhgU2C074HHwyVfA5dDfoAwJiQrKjKV+nZjwA6CNuozAgfo/n5PZ35ea5KV8aSthyCYg==","shasum":"7a257c06dbeb1affae8680a0bbb6cc8a0bd80977","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-nodejs-20230426.0.tgz","fileCount":6,"unpackedSize":3681066,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICchNgFyMaHl6ZWaKJtx8w8Fk2+yUjGbIerSrWcKwYd0AiAU7f26UnsvOXFV8hSenIZMA+co6Jqh8HyGDUPIGfQJdA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSNkyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrF9Q//U35RpcnfCPXdF7FHAi/kfXASFs8bUH8QG3jFjtwaugCd6qvt\r\na9dkbh548JwfZBnA5/3LVzmetNDj2cXLhEaYQBG2S+SBMaq4chzOlvLjbvTm\r\nNiVy8JhhU1/U+/5iGIoOFKXyBMvYkD0ISNuEfrbdIC1lLdbav3VW1HlYMOxF\r\n7U5olnXQKvmfV0ztiDgFLiD66gKgOGRsO2LkkxDzYYiWZtRX+XMaQpOxf05X\r\nxizOLxJjzlyQBoEVkQ8S3i7FitVxjSCxuaiS9Wk7ptpOevWIG4OzyOwm335b\r\n/szsfvBUfh8RAfcZMLrd9Jzfcw1sh8Mtob7wDhIemdsSc+qA/OcYLwczf6kz\r\nRQaY1dCo4+cSt4BBIGBATRMqxQFp310pSyeIVJM8nbncX7P1k3KYGAG17YbP\r\nTbInQfZUFlPJxKOM1F6DhZHGRP6gkgR10cDyL5tLV4U+UFUl6m+Ne+o1NWyl\r\n5ejWSstT/mM0/3i/c3AuQVpxTsVUfCEjaUpRgXqBlqG2xU+fBEztOHnBDQaD\r\nYujK52oc2jO98yEKG0yJDFPajs16WaSa+Hlb/Wf8KneRFU8YFVYQ/F652qgC\r\nV7fahUsw+GS+ppq1kVYCDkNzlqp9uBgD0dDiU4cTjrylk/TKNlMSXNENMZQv\r\noRlDK8kVmetGOV7efZHe2B/hgVALe/RjuWc=\r\n=4Cae\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-nodejs-20230426.0_1682495794156_0.1481683504021778"},"_hasShrinkwrap":false},"0.2.5-dev-20230427.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230427.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"cd512fbe2d1adef1947f5f22cfb0770f1cabab81","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230427.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-YIeNQA2LcNMpeXV9p9J47425eIo7tJuHJmz7quKipMfLbbRZ8BcC0xKoYLIRLI2zf1fDm4Tk2at6XOVh40cHvQ==","shasum":"0ac6f5f032f46109130f3a70143b78a352add02d","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230427.0.tgz","fileCount":6,"unpackedSize":3687354,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICRl3JO9iyAJDaE4JNIY2bIham2MxrD6dcXdyyCH7Wo6AiEA3+DzWgp2l1az9hw/qbsIH6X6MD6BbmbSOupauvxft5k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSdXsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrs9BAAlLEzyC+LaPOIKl6d3wli3cz6Xd3UsZz31kL/gZskzuFmsMnS\r\nSfE9fV25RmzqGjfp2rNUczQ5ji2XcL3tCl+0af+jOM299PuhxKXMDlFkUDxf\r\nADB/BkyeKPGX/q2HKBZ/hWnA4fq1HFXKP3BMuP1iRWMm8EIKafr81xjLPOPC\r\ngmYPx/V7E6xDHPX30pcrlSYB+ux6vkCdiiv+F6Gsvg/EvcYyeApk7Gc3yGLA\r\nH0skaYBw9/eIHQfHQVMEtfmKHdyq/5Iw4SuDIXmBUoaYEb5QyD5T1Epgjamz\r\npwOibRucYpxAnOAnIl0JNdN8Wba8p/mj8UEGnHytmmEw7wFcykk+qFhrGGDC\r\nTeA6/7ndP2qj1wQhW2FV0Im1ZOAml/dDE8f5BN3przFBzRzZ+pi2J5EN9FSG\r\nobrYeZubFUZDSbVRAuKKF4M7HR7W13tqSl+Oq3Trnl0zluTkroqKajo2vrKU\r\nwrHMp3JIXTLT+VT+T5YPccKavamrRmTnsD81O6cENj0iSw0OgWP7gPOw/7hB\r\nQt3AR0NjlWXI6bqhu9y5/R3XpjpBuydQF16ohQitRZpRHlf0w3OOL60kO6lg\r\n/yKPwRcAlN6ItGXI/Q/0FB8j9V/7BR4aIvY2ZJDJvsvXjkXYh0IPoADw+iL0\r\npxgZApjU9/6J/zl44b7zZPw1Yow3NSIXq+k=\r\n=hiaD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230427.0_1682560492191_0.3341873918045426"},"_hasShrinkwrap":false},"0.2.5-dev-20230507.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230507.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"dfb7a818c04893f1f781249a19a8b6d6eec91e99","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230507.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2NuvWOKVyPTvPwfphSpJ10bI6Gy2vWfipLt0QFDZNtAo5wMIDGhh7vm6R1OR2YS0nIJ3CJ/qv9fw6Xu7Bar1MA==","shasum":"efc35bb521c291572b11621d6b85c76cc97f6134","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230507.0.tgz","fileCount":6,"unpackedSize":3970803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZgmmxzrJ78gW2Y+w5DJuCT1/cKe4oeNSR+Z9ZVRRUdgIhAIOImC6jcjaNrC6sxQUutKKmlFlLoxirfaEeBriK1xJG"}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230507.0_1683420371277_0.9924263578796357"},"_hasShrinkwrap":false},"0.2.5-dev-20230508.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230508.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"747e8583b61ebda6d10a79bcbffba772cf2d31eb","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230508.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-oLFqRe0l8K14YX4NsgO+6JM8ED8DLxT58lBHzm6zmGMLRlocGkaVy0krfwCYEr0XUjIRN1ZkxD43A58LVYp1jQ==","shasum":"995121c00094fb2b6b941326d9a1920229382fca","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230508.0.tgz","fileCount":6,"unpackedSize":3975315,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB76KstDHldu4yho4xbIEP7C54Q/HixnHkcqhuxCI3dGAiEAuehc8ihm9jOw4y1hTf0N4FQ+R4zC1xeOl1QIW3bmr4g="}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230508.0_1683513951520_0.7714995678723988"},"_hasShrinkwrap":false},"0.2.5-dev-20230508.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230508.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"cbf6a9bcf70b86fcb759ceea18de43d6be0cd619","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230508.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ABV2ra815whPlradhd4IBUM4F2H0fDXzIlAlZtIjLmIrSNCz21a484Q7UpczvRXo3PoWy3RRn5Ra1PP55MoMqQ==","shasum":"bc4a77f232bf0c731f9bd2dd937502a57d3a3483","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230508.1.tgz","fileCount":6,"unpackedSize":3978037,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdP9kxOL08LWTbOUcPYcerXtVjqFxTCvapHhwD/q+5qwIhANOIS7otH3GyXtYsFLI/scbI2zRQz65De+jKS/xtxkQW"}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230508.1_1683518041794_0.7342998433229206"},"_hasShrinkwrap":false},"0.2.5-dev-20230509.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230509.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"d63b818ef0a807aed4840eff3aa31ca8d285df21","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230509.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-TedCcjnJcQk/xzC1HIA1k2M7fsso54cCOtuRAky8dg9XW/y+9C9lRQMh2rTRwtCH2QJKX5xtNfFmb9oTgTmtgA==","shasum":"3937e5a2429aa66a2b607aa16e099c416b4bdabd","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230509.0.tgz","fileCount":6,"unpackedSize":3951534,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDErs+uGhiUrLelqnxfbCHpe2Ax4OofgheKXeyUxNZdqwIhAPQKHB0ugZAU1hzy+A+b4RF5KjCirVlMji2hSxzMCJkE"}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230509.0_1683587612849_0.5154597643335217"},"_hasShrinkwrap":false},"0.2.5-dev-20230509.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230509.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"d63b818ef0a807aed4840eff3aa31ca8d285df21","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230509.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-a3AX34yvuCGiG20hLlIH8oChhqTauw6fLks4KFqUfo3YOXXPJoC7ThqIMMLt8r3hPXkhvuSoLQqaucj73RvB/A==","shasum":"cc14da9f3f55a2414263a459c989f345c99c7f2f","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230509.1.tgz","fileCount":6,"unpackedSize":3950543,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAT0qAC2NrCUSvTuVaHE3emL+EM2Gc0Oi55KjtpRcbURAiEAn0JErBNOROI6/sXaWh6QHX4BRrN2h8zGP1VM8ljisbw="}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230509.1_1683614415118_0.7498747113783881"},"_hasShrinkwrap":false},"0.2.5-dev-20230509.2":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230509.2","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"d63b818ef0a807aed4840eff3aa31ca8d285df21","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230509.2","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-3Q7dyPpvOH1idk9YzGX8K1BMJrhT0qmFGdPqul4MUxp7NmXlTuSV6KiuFd1c0H/oP4HchyfaDKTY5s3Po/w9jA==","shasum":"61f72690b4d9ba6a319e284272e9c160e6c5d6ce","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230509.2.tgz","fileCount":6,"unpackedSize":3956040,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICgOdEPFlOEQoQASDEVurT3Ys7ftTwUuvf9s6aMlOnF8AiAgU1zIK1eQ7RmCvpxJA2mzakWrGfRvZkMmdoiQDTHx5w=="}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230509.2_1683616118142_0.4343638148728628"},"_hasShrinkwrap":false},"0.2.5-dev-20230509.3":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230509.3","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"5a808b931d7da7977382ebc17d7d9dcd23e8d86c","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230509.3","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-44zDy34SHH3LpzUD0HdncEuzHDoTXN1yp/PJ1EPGXhCYtLqrHhVajtdLEQs8Q7IqDbCjbe7unMqGIBpwn8Vp3g==","shasum":"53c43cf1b6e4058183bce040bb08438abd3f08a7","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230509.3.tgz","fileCount":6,"unpackedSize":3956049,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG8cOneCepVkZaFsdpyjyMsQ8QiA4SQLH+HOaoIyQi4ZAiEA8EeEeR+kACdwHmuT/scoUrGnYOLTcCSPMQl8Sjdt4zk="}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230509.3_1683639108376_0.9798379578311434"},"_hasShrinkwrap":false},"0.2.5-dev-20230516.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230516.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"ceef00a49e8a558ace403d6daa933240629248aa","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230516.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-p1cPKYXzl3h7n+0FqaULBY+WZoIUDnqJwqnWLOM/JjZBOpfWbsQblZU7+aQVUlh/C/OLgTGdraoxj7w6+RRkKg==","shasum":"b9e927731e30dd112f9ce86430e7e25ca857fd0f","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230516.0.tgz","fileCount":6,"unpackedSize":3958659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPdLdIaMHCM8W0lD3zGiDWcM1xfjcIHsbOSM5Td1KNOgIhAPyLJ9z4n91iiraHsNy1+X5uzd/VFfoVL0+zsEQX0nR1"}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230516.0_1684190078664_0.7901170576906311"},"_hasShrinkwrap":false},"0.2.5-dev-20230614.0":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230614.0","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","gitHead":"35412577e3369241add837cdc580435947c997d1","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230614.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-u1BlZEuDW9xM0HNWkFEilsujOD+pMXjq5jpYICdHt37BLh1B5OJ//rIiTuzh/U80YaIT5ul/fIEkWQ96ZcS6BA==","shasum":"4a5062f8a974126f732a0b6ff6a9426475175e52","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230614.0.tgz","fileCount":6,"unpackedSize":3915741,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZtOBu79hywQJihNTp+l/I6n5tA2XHqzvXenpFGCD1igIhAMCf4Qe7DYHnZyDn/N4Sba0ywKSHqnCAzaW3ln+5E+c7"}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230614.0_1686719703855_0.22571531617245344"},"_hasShrinkwrap":false},"0.2.5-dev-20230614.1":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230614.1","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"gitHead":"8255149feeb91ab4f88ad6244f5f8ea6a7cb8c9c","readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230614.1","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-tSf5GBPzN2djWZrajOdykQrMgBOYh+GZsxm6BHmV+z3rSLQuZ8iH8wRjGFcmRGSXqXPrHXFakT86K4ky3u0HNw==","shasum":"7b733cd503551b3118f704b73cdac00902b9cf1f","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230614.1.tgz","fileCount":6,"unpackedSize":3918657,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGoCq1jyexdhL9Au1AIctOb3Ks26gmuMxifhotEQkZQUAiBKDlMPGXwTPlLLOleuu4ygOgGoGr9Hx4drV1xpd2pUVw=="}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230614.1_1686725678270_0.9876836494717702"},"_hasShrinkwrap":false},"0.2.5-dev-20230614.2":{"name":"@ringsnetwork/rings-node","collaborators":["RND <dev@ringsnetwork.io>"],"description":"Chord DHT implementation with ICE","version":"0.2.5-dev-20230614.2","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"module":"rings_node.js","types":"rings_node.d.ts","type":"module","main":"rings_node.js","sideEffects":false,"keywords":["Chord","DHT","Web3","P2P","WASM"],"gitHead":"cd512fbe2d1adef1947f5f22cfb0770f1cabab81","readme":"rings-node\n===============\n\n[![rings-node](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml/badge.svg)](https://github.com/RingsNetwork/rings-node/actions/workflows/auto-release.yml)\n[![cargo](https://img.shields.io/crates/v/rings-node.svg)](https://crates.io/crates/rings-node)\n[![docs](https://docs.rs/rings-node/badge.svg)](https://docs.rs/rings-node/latest/rings_node/)\n\n### Installation\n\n#### from cargo\n\n```\ncargo install rings-node\n```\n\n#### from source\n\n```\ngit clone git@github.com:RingsNetwork/rings-node.git\ncd ./rings-node\ncargo install --path .\n```\n\n\n### Usage\n\n* Create default config file:\n\n\t`rings init`\n\n* Run rings-node as daemon;\n\n\t`rings run`\n\n* Get help message:\n\n  `rings help`\n\n### ICE Scheme:\n\n1. Peer A:\n{\n    create offer,\n\tset it as local description\n} -> Send Offer to Peer B\n\n2. Peer B: {\n   set receiveed offer as remote description\n   create answer\n   set it as local description\n   Send Answer to Peer A\n}\n\n3. Peer A: {\n   Set receiveed answer as remote description\n}\n\n\n### Keywords\n\n* Candidate\n\n\t- A CANDIDATE is a transport address -- a combination of IP address and port for a particular transport protocol (with only UDP specified here).\n\n\t- If an agent is multihomed, it obtains a candidate from each IP address.\n\n\t- The agent uses STUN or TURN to obtain additional candidates. These come in two flavors: translated addresses on the public side of a NAT (SERVER REFLEXIVE CANDIDATES) and addresses on TURN servers (RELAYED CANDIDATES).\n\n\n```\n                 To Internet\n\n                     |\n                     |\n                     |  /------------  Relayed\n                 Y:y | /               Address\n                 +--------+\n                 |        |\n                 |  TURN  |\n                 | Server |\n                 |        |\n                 +--------+\n                     |\n                     |\n                     | /------------  Server\n              X1':x1'|/               Reflexive\n               +------------+         Address\n               |    NAT     |\n               +------------+\n                     |\n                     | /------------  Local\n                 X:x |/               Address\n                 +--------+\n                 |        |\n                 | Agent  |\n                 |        |\n                 +--------+\n\n                     Figure 2: Candidate Relationships\n\n```\n\n* Channel\n\nIn the WebRTC framework, communication between the parties consists of media (for example, audio and video) and non-media data.\n\nNon-media data is handled by using the Stream Control Transmission Protocol (SCTP) [RFC4960] encapsulated in DTLS.\n\n```\n                               +----------+\n                               |   SCTP   |\n                               +----------+\n                               |   DTLS   |\n                               +----------+\n                               | ICE/UDP  |\n                               +----------+\n\n```\n\nThe encapsulation of SCTP over DTLS (see [RFC8261]) over ICE/UDP (see [RFC8445]) provides a NAT traversal solution together with confidentiality, source authentication, and integrity-protected transfers.\n\n\n The layering of protocols for WebRTC is shown as:\n\n```\n                                 +------+------+------+\n                                 | DCEP | UTF-8|Binary|\n                                 |      | Data | Data |\n                                 +------+------+------+\n                                 |        SCTP        |\n                   +----------------------------------+\n                   | STUN | SRTP |        DTLS        |\n                   +----------------------------------+\n                   |                ICE               |\n                   +----------------------------------+\n                   | UDP1 | UDP2 | UDP3 | ...         |\n                   +----------------------------------+\n```\n\n\n### Architecture\n\n\n```\n+-----------------------------------------------------------------------------------------+\n|                                         RINGS                                           |\n+-----------------------------------------------------------------------------------------+\n|   Encrypted IM / Secret Sharing Storage / Distributed Content / Secret Data Exchange    |\n+-----------------------------------------------------------------------------------------+\n|                  SSSS                  |  Perdson Commitment/zkPod/ Secret Sharing      |\n+-----------------------------------------------------------------------------------------+\n|                     |       dDNS       |                 Sigma Protocol                 |\n+      K-V Storage    +------------------+------------------------------------------------+\n|                     |  Peer LOOKUP     |          MSRP        |  End-to-End Encryption  |\n+----------------------------------------+------------------------------------------------+\n|            Peer-to-Peer Network        |                                                |\n|----------------------------------------+               DID / Resource ID                |\n|                 Chord DHT              |                                                |\n+----------------------------------------+------------------------------------------------+\n|                Trickle SDP             |        ElGamal        | Persistence Storage    |\n+----------------------------------------+-----------------------+------------------------+\n|            STUN  | SDP  | ICE          |  Crosschain Binding   | Smart Contract Binding |\n+----------------------------------------+------------------------------------------------+\n|             SCTP | UDP | TCP           |             Finate Pubkey Group                |\n+----------------------------------------+------------------------------------------------+\n|   WASM Runtime    |                    |                                                |\n+-------------------|  Operation System  |                   ECDSA                        |\n|     Browser       |                    |                                                |\n+-----------------------------------------------------------------------------------------+\n```\n\n\n\n### Ref:\n\n1. https://datatracker.ietf.org/doc/html/rfc5245\n\n2. https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-ip-handling-01\n\n3. https://datatracker.ietf.org/doc/html/rfc8831\n\n4. https://datatracker.ietf.org/doc/html/rfc8832\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"homepage":"https://github.com/RingsNetwork/rings-node#readme","_id":"@ringsnetwork/rings-node@0.2.5-dev-20230614.2","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-kvgM+E/bnSHQ8sPkG4hWMMn2tdhN2XPDxTFpyEGtoDaGsVRWz+llgSX/S2OMznjBLiZqxPS9EvcPd/nRV/JkIg==","shasum":"fac5916b497028d073a75636fc6e9b0124f3d626","tarball":"https://registry.npmjs.org/@ringsnetwork/rings-node/-/rings-node-0.2.5-dev-20230614.2.tgz","fileCount":6,"unpackedSize":3687354,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCXJswfVSCfq4lUd/betHMLHB0rR6csrhrnxK/7ipyHvAIhAOuZg1CffJDVYUnondKJaeSC3BRWy4s8GenV4yBIMYDQ"}]},"_npmUser":{"name":"googolmo","email":"googolmo@gmail.com"},"directories":{},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rings-node_0.2.5-dev-20230614.2_1686726015761_0.2716091176987061"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-13T06:37:15.830Z","0.2.0":"2022-07-13T06:37:16.265Z","modified":"2023-06-14T07:00:16.155Z","0.2.1":"2022-07-13T06:58:37.570Z","0.2.0-dev-20220721.0":"2022-07-21T22:22:49.782Z","0.2.0-dev-20220722.0":"2022-07-22T11:45:49.963Z","0.2.0-dev-20220722.1":"2022-07-22T22:27:55.821Z","0.2.0-dev-20220726.0":"2022-07-26T06:35:12.283Z","0.2.0-dev-20220729.0":"2022-07-29T10:45:25.770Z","0.2.0-dev-20220731.0":"2022-07-31T23:54:03.701Z","0.2.1-dev-20220810.0":"2022-08-09T22:58:18.251Z","0.2.1-dev-20220810.1":"2022-08-10T09:14:44.104Z","0.2.1-dev-20220817.0":"2022-08-17T09:58:11.505Z","0.2.1-dev-20220819.0":"2022-08-18T23:32:13.528Z","0.2.1-dev-20220819.1":"2022-08-19T13:13:54.860Z","0.2.1-dev-20220826.0":"2022-08-26T00:47:31.078Z","0.2.1-dev-20221008.0":"2022-10-08T02:28:58.197Z","0.2.1-dev-20221011.0":"2022-10-11T08:20:03.835Z","0.2.1-dev-20221014.0":"2022-10-14T12:44:45.945Z","0.2.1-dev-20221016.0":"2022-10-16T02:30:52.488Z","0.2.1-dev-20221018.0":"2022-10-18T10:57:23.118Z","0.2.1-dev-20221019.0":"2022-10-19T04:04:04.023Z","0.2.1-dev-20221019.1":"2022-10-19T09:51:58.865Z","0.2.1-dev-20221019.2":"2022-10-19T13:26:10.233Z","0.2.1-dev-20221019.3":"2022-10-19T13:47:10.108Z","0.2.1-dev-20221019.4":"2022-10-19T14:01:18.791Z","0.2.1-dev-20221019.5":"2022-10-19T14:53:18.155Z","0.2.1-dev-20221019.6":"2022-10-19T15:16:04.476Z","0.2.1-dev-20221021.0":"2022-10-20T15:26:42.389Z","0.2.1-dev-20221021.1":"2022-10-21T01:52:48.648Z","0.2.1-dev-20221021.2":"2022-10-21T07:11:12.634Z","0.2.1-dev-20221130.1":"2022-11-30T05:39:29.294Z","0.2.2-dev-20230119.0":"2023-01-19T09:50:44.070Z","0.2.4-dev-20230221.0":"2023-02-21T07:33:00.522Z","0.2.4-dev-20230306.0":"2023-03-06T07:26:59.768Z","0.2.4-dev-20230307.0":"2023-03-07T03:21:46.001Z","0.2.5-dev-20230322.0":"2023-03-22T09:22:37.455Z","0.2.5-dev-20230322.1":"2023-03-22T09:42:54.927Z","0.2.5-dev-20230322.2":"2023-03-22T11:28:44.113Z","0.2.5-dev-20230323.0":"2023-03-23T04:24:41.696Z","0.2.5-dev-20230323.1":"2023-03-23T09:30:29.401Z","0.2.5-bundler-20230328.0":"2023-03-28T14:03:59.872Z","0.2.5-dev-20230329.0":"2023-03-29T05:00:33.776Z","0.2.5-dev-20230329.1":"2023-03-29T13:26:14.209Z","0.2.5-dev-20230331.0":"2023-03-31T05:19:14.396Z","0.2.5-dev-20230411.0":"2023-04-11T10:25:40.459Z","0.2.5-dev-20230412.0":"2023-04-11T22:40:45.600Z","0.2.5-dev-20230419.0":"2023-04-19T04:04:50.809Z","0.2.5-web-20230426.0":"2023-04-26T07:47:36.218Z","0.2.5-bundler-20230426.0":"2023-04-26T07:48:23.040Z","0.2.5-no-modules-20230426.0":"2023-04-26T07:51:39.785Z","0.2.5-nodejs-20230426.0":"2023-04-26T07:56:34.533Z","0.2.5-dev-20230427.0":"2023-04-27T01:54:52.385Z","0.2.5-dev-20230507.0":"2023-05-07T00:46:11.513Z","0.2.5-dev-20230508.0":"2023-05-08T02:45:51.831Z","0.2.5-dev-20230508.1":"2023-05-08T03:54:02.107Z","0.2.5-dev-20230509.0":"2023-05-08T23:13:33.119Z","0.2.5-dev-20230509.1":"2023-05-09T06:40:15.394Z","0.2.5-dev-20230509.2":"2023-05-09T07:08:38.470Z","0.2.5-dev-20230509.3":"2023-05-09T13:31:48.598Z","0.2.5-dev-20230516.0":"2023-05-15T22:34:39.127Z","0.2.5-dev-20230614.0":"2023-06-14T05:15:04.173Z","0.2.5-dev-20230614.1":"2023-06-14T06:54:38.554Z","0.2.5-dev-20230614.2":"2023-06-14T07:00:15.994Z"},"maintainers":[{"name":"googolmo","email":"googolmo@gmail.com"},{"name":"gaowhen","email":"gaowhen.com@gmail.com"},{"name":"croath","email":"croathliu@gmail.com"}],"description":"Chord DHT implementation with ICE","homepage":"https://github.com/RingsNetwork/rings-node#readme","keywords":["Chord","DHT","Web3","P2P","WASM"],"repository":{"type":"git","url":"git+https://github.com/RingsNetwork/rings-node.git"},"bugs":{"url":"https://github.com/RingsNetwork/rings-node/issues"},"license":"GPL-3.0","readme":"","readmeFilename":""}