From dd3c4614d6ecc49ed6888d705e2dac471ad0e547 Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Tue, 23 Jun 2020 06:43:54 -0500 Subject: [PATCH] Mark WIP parts as WIP --- README.md | 3 ++- dev_docs.md | 26 +++++++++++++------------- faq.md | 4 ---- message_format.md | 43 ++++++++++++++++++++++++++++++++++++------- roadmap.md | 5 ----- 5 files changed, 51 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index ed80fb9..8e2f080 100644 --- a/README.md +++ b/README.md @@ -365,7 +365,8 @@ ideas at `contact at vaporsoft.xyz`. I will reply to all messages. Check out the following links: +* (WIP) [Developer Docs and Specification](dev_docs.md) +* (WIP) [Message Format Specification](message_format.md) * [Frequently Asked Questions](faq.md) * [Roadmap](roadmap.md) -* [Developer Docs and Specification](dev_docs.md) * [Ideas and Features](ideas.md) diff --git a/dev_docs.md b/dev_docs.md index af79caa..8893a96 100644 --- a/dev_docs.md +++ b/dev_docs.md @@ -6,17 +6,17 @@ In their most simple form, Pigeon protocol messages are just ASCII text document Below is an example of such a message: ``` -author @MF312A76JV8S1XWCHV1XR6ANRDMPAT2G5K8PZTGKWV354PR82CD0.ed25519 +author USER.4CZHSZAH8473YPHP1F1DR5ZVCRKEA4Q0BY18NMXYE14NZ0XV2PGG +depth 123 kind weather_report -prev %ZV85NQS8B1BWQN7YAME1GB0G6XS2AVN610RQTME507DN5ASP2S6G.sha256 -depth 3 -lipmaa 2 +lipmaa TEXT.7ZKXANAAM31R9AMHMBVGP9Q5BF5HSCP557981VQHBTRYETGTGAK0 +prev TEXT.E90DY6RABDQ2CJPVQHYQDYH6N7Q46SZKQ0AQ76J6D684HYBRKE4G temperature:"22.0C" -webcam_photo:&FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG.sha256 -weather_reported_by:@0DC253VW8RP4KGTZP8K5G2TAPMDRNA6RX1VHCWX1S8VJ67A213FM.ed25519 +webcam_photo:FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG +weather_reported_by:USER.GGP2VX0ZN41EYXMN81YB0Q4AEKRCVZ5RD1F1PHPY3748HAZSHZC4 -signature JSPJJQJRVBVGV52K2058AR2KFQCWSZ8M8W6Q6PB93R2T3SJ031AYX1X74KCW06HHVQ9Y6NDATGE6NH3W59QY35M58YDQC5WEA1ASW08.sig.ed25519 +signature JSPJJQJRVBVGV52K2058AR2KFQCWSZ8M8W6Q6PB93R2T3SJ031AYX1X74KCW06HHVQ9Y6NDATGE6NH3W59QY35M58YDQC5WEA1ASW08 ``` The specifics of the message format are explained line-by-line [in the message format explanation document](message_format.md). @@ -48,7 +48,7 @@ Here is an example of the contents of a `messages.pgn` file: ``` author @RZW2HE8MQFRH93NP3YKWC1QGZ6VWDZW1WZPMEKQ5MP0NM6TE54W0.ed25519 -kind &ET9C7B9N82XR0F021CXEWSPDH23H4CHMX866WWA3R2PXEFZM67PG.sha256 +kind FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG prev NONE depth 0 lipmaa 0 @@ -63,7 +63,7 @@ prev %XKB8MVA3AZZAG1D29AHPG33G2T8BWAGRKJ0DJ4H01MGPM5R9Y3RG.sha256 depth 1 lipmaa 0 -&7Z2CSZKMB1RE5G6SKXRZ63ZGCNP8VVEM3K0XFMYKETRDQSM5WBSG.sha256:"b" +FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG:"b" signature 5Y8KQVMJ0BADEPWZEXSMYYVMVE5JYQ0069RQ4S80CT9GA64KCRVTWYSK3V728J024916P9SVZ62W9HVZ189C6PANHWD23T07C779P2R.sig.ed25519 @@ -73,7 +73,7 @@ prev %5N0KJN0TSWRVMXY3JF0FAJRXXDB1AHT9YXBTKE2V7H98GKQND4PG.sha256 depth 2 lipmaa 1 -b:&HDDSVC617PS44NP856N3CJN91HPJXEHHHE93595BJC9VJN6KANFG.sha256 +b:FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG signature 7XSFRS28B5T6GN0XEYAASFQQAJG9YTVNSXQY0JD8XHYHPQVNK2VSH081PS9CNPNKEAEJGEPXZR6GSZ21SV1HTKQ7R3SZ49P8PHRER18.sig.ed25519 @@ -113,9 +113,9 @@ Example: a user exports a bundle that contains a few messages and the following blobs: ``` -&622PRNJ7C0S05XR2AHDPKWMG051B1QW5SXMN2RQHF2AND6J8VGPG.sha256 -&FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG.sha256 -&YPF11E5N9JFVB6KB1N1WDVVT9DXMCHE0XJWBZHT2CQ29S5SEPCSG.sha256 +FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG +FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG +FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG ``` Assuming the user's client follows this specification, the exported bundles strucutre would be laid out as follows on the local filesystem: diff --git a/faq.md b/faq.md index 90dea44..8cdb29f 100644 --- a/faq.md +++ b/faq.md @@ -25,7 +25,3 @@ # Is This a Blockchain? It's different than a block chain despite some similarity. A global blockchain is a singleton, and Pigeon has no singletons. Each Pigeon node maintains their own feed of messages rather than sharing a global feed. When you trust a peer, you agree to replicate their feed. You also replicate the feed of their peers. Unlike a blockchain, there are many feeds (rather than one) and they do not require consensus or coordination to coexist. Additionally, forking of feeds is not supported by Pigeon. - -# Up Next - -Continue to [Developer Docs and Specification](DEV_DOCS.md) \ No newline at end of file diff --git a/message_format.md b/message_format.md index 6ea0fbc..250f806 100644 --- a/message_format.md +++ b/message_format.md @@ -5,19 +5,48 @@ In the test that follows, we will explore a pigeon message line-by-line. The example message is shown in its entirety below: ``` -author @MF312A76JV8S1XWCHV1XR6ANRDMPAT2G5K8PZTGKWV354PR82CD0.ed25519 +author USER.4CZHSZAH8473YPHP1F1DR5ZVCRKEA4Q0BY18NMXYE14NZ0XV2PGG +depth 123 kind weather_report -prev %ZV85NQS8B1BWQN7YAME1GB0G6XS2AVN610RQTME507DN5ASP2S6G.sha256 -depth 3 -lipmaa 2 +lipmaa TEXT.7ZKXANAAM31R9AMHMBVGP9Q5BF5HSCP557981VQHBTRYETGTGAK0 +prev TEXT.E90DY6RABDQ2CJPVQHYQDYH6N7Q46SZKQ0AQ76J6D684HYBRKE4G temperature:"22.0C" -webcam_photo:&FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG.sha256 -weather_reported_by:@0DC253VW8RP4KGTZP8K5G2TAPMDRNA6RX1VHCWX1S8VJ67A213FM.ed25519 +webcam_photo:FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG +weather_reported_by:USER.GGP2VX0ZN41EYXMN81YB0Q4AEKRCVZ5RD1F1PHPY3748HAZSHZC4 -signature JSPJJQJRVBVGV52K2058AR2KFQCWSZ8M8W6Q6PB93R2T3SJ031AYX1X74KCW06HHVQ9Y6NDATGE6NH3W59QY35M58YDQC5WEA1ASW08.sig.ed25519 +signature JSPJJQJRVBVGV52K2058AR2KFQCWSZ8M8W6Q6PB93R2T3SJ031AYX1X74KCW06HHVQ9Y6NDATGE6NH3W59QY35M58YDQC5WEA1ASW08 ``` +### Pigeon Multihashes and Data Types + +Pigeon has 4 data types: + + * Message multihash + * Blob multihash + * User multihash + * String + +### Parts of a Message + +The three parts of a Pigeon message are: + +1. Header: Data that is used by the _protocol_ +2. Body: Data that is used by the _user or application_ +3. Footer: Cryptographic signature to prevent tampering or forgery. + +The parts of a message must follow the order specified. + +### Parts of a Header + +A header is the first part of a message and contains 5 subsections: + + 1. `author`: A + 1. `depth`: + 1. `kind`: + 1. `lipmaa`: + 1. `prev`: + ### Line 1: `Author` EXAMPLE: diff --git a/roadmap.md b/roadmap.md index 78988aa..6b8a0dc 100644 --- a/roadmap.md +++ b/roadmap.md @@ -47,8 +47,3 @@ With a finalized spec and a portable client library, the next goal is to promote This phase will be considered complete when there are three production-scale apps using the libraries authored. By this point, we've hopefully made a difference and helped people regain control of their data and find a new alternative to the current status-quo of "online only" computer applications. After that, I might rename the project so that we are not tied to the legacy baggage of the prototype phase. It might be fun to apply to a grant for continued maintenance (or just lock down the feature set- it's too early to say). - - -# Up Next - -Continue to the [idea bin](IDEAS.md). \ No newline at end of file