{"id":18083111,"url":"https://github.com/progval/sfcp-doc","last_synced_at":"2025-04-05T23:14:47.939Z","repository":{"id":66987001,"uuid":"155907867","full_name":"progval/sfcp-doc","owner":"progval","description":"[Work in progress] The Simplified Futuristic Connectivity Protocol -- a modified version of the FCP (cjdns' protocol) ","archived":false,"fork":false,"pushed_at":"2018-11-03T18:14:35.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-12T05:38:55.652Z","etag":null,"topics":["cjdns","fcp","sfcp"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/progval.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-02T18:40:09.000Z","updated_at":"2019-01-09T09:22:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"6214dac1-3161-4f3c-82da-da056eaa2640","html_url":"https://github.com/progval/sfcp-doc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/progval%2Fsfcp-doc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/progval%2Fsfcp-doc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/progval%2Fsfcp-doc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/progval%2Fsfcp-doc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/progval","download_url":"https://codeload.github.com/progval/sfcp-doc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411238,"owners_count":20934654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cjdns","fcp","sfcp"],"created_at":"2024-10-31T14:06:55.945Z","updated_at":"2025-04-05T23:14:47.934Z","avatar_url":"https://github.com/progval.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Simplified Futuristic Connectivity Protocol\n\nThe Simplified Futuristic Connectivity Protocol is a networking protocol reusing the\n[core concepts of the FCP/`cjdns`](https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md),\nbut stripping as much complexity as possible from the protocol, to make\nit easier to implement -- and entirely documented.\n\nThe address space is left unspecified rather than enforced to be fc00::/8 at\nthe protocol level.\n\n## Cryptographic layer\n\nThe [CryptoAuth](https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepaper.md#the-cryptoauth)\nspecification is reuse as-is.\nI believe it to already be the minimalist design to fulfill its goals.\n\n## Switch layer\n\nThe Switch Header is changed from this layout:\n\n```\n                    1               2               3\n    0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n 0 |                                                               |\n   -                          Route Label                          -\n 4 |                                                               |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n 8 |   Congest   |S| V |labelShift |            Penalty            |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n```\n\nto this one:\n\n```\n                    1               2               3\n    0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n 0 |                                                               |\n   -                                                               -\n 4 |                                                               |\n   -                           Route Label                         -\n 8 |                                                               |\n   -                                                               +\n12 |                                                               |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n16 |   Reserved    |S|  labelShift |            Reserved           |\n   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n```\n\nThe Route Label expansion is to deal with horizon limits observed in\ncjdns/Hyperboria.\nAs a consequence, the labelShift is one bit longer.\n\nCongest and Penalty are removed because they were unused by cjdns.\nThe Reserved bytes must be set to 0x00.\n\n## Routing Layer\n\nThe concept of Encoding Scheme is removed from the protocol, because it\nwas used as a way to deal with horizon limits.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogval%2Fsfcp-doc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogval%2Fsfcp-doc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogval%2Fsfcp-doc/lists"}