diff --git a/.vscode/configurationCache.log b/.vscode/configurationCache.log new file mode 100644 index 000000000..897b3441c --- /dev/null +++ b/.vscode/configurationCache.log @@ -0,0 +1 @@ +{"buildTargets":["help","serve","update","update-force"],"launchTargets":[],"customConfigurationProvider":{"workspaceBrowse":{"browsePath":[],"compilerArgs":[]},"fileIndex":[]}} \ No newline at end of file diff --git a/.vscode/dryrun.log b/.vscode/dryrun.log new file mode 100644 index 000000000..0da23d5ee --- /dev/null +++ b/.vscode/dryrun.log @@ -0,0 +1,5 @@ +make --dry-run --always-make --keep-going --print-directory +make: Entering directory '/home/petty/github/logos/roadmap' +hugo-obsidian -input=content -output=assets/indices -index -root=. && hugo server --enableGitInfo --minify +make: Leaving directory '/home/petty/github/logos/roadmap' + diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..65e1ec078 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "makefile.extensionOutputFolder": "./.vscode" +} \ No newline at end of file diff --git a/.vscode/targets.log b/.vscode/targets.log new file mode 100644 index 000000000..ea9a2f66a --- /dev/null +++ b/.vscode/targets.log @@ -0,0 +1,354 @@ +make all --print-data-base --no-builtin-variables --no-builtin-rules --question +make: *** No rule to make target 'all'. Stop. + +# GNU Make 4.3 +# Built for x86_64-pc-linux-gnu +# Copyright (C) 1988-2020 Free Software Foundation, Inc. +# License GPLv3+: GNU GPL version 3 or later +# This is free software: you are free to change and redistribute it. +# There is NO WARRANTY, to the extent permitted by law. + +# Make data base, printed on Fri Aug 19 15:10:08 2022 + +# Variables + +# environment +GDK_BACKEND = x11 +# environment +LC_ALL = C +# environment +GNOME_SHELL_SESSION_MODE = pop +# environment +GVM_OVERLAY_PREFIX = /home/petty/.gvm/pkgsets/go1.18/global/overlay +# environment +GJS_DEBUG_OUTPUT = stderr +# environment +VSCODE_IPC_HOOK_EXTHOST = /run/user/1000/vscode-ipc-0b65e9f9-c50f-46ec-8b3e-16e5d47be053.sock +# environment +MANDATORY_PATH = /usr/share/gconf/pop.mandatory.path +# environment +VSCODE_CWD = /home/petty +# environment +GPG_TTY = +# environment +WINDOWPATH = 2 +# environment +NVM_DIR = /home/petty/.nvm +# default +MAKE_COMMAND := make +# environment +QT_ACCESSIBILITY = 1 +# environment +GOPATH = /home/petty/.gvm/pkgsets/go1.18/global +# automatic +@D = $(patsubst %/,%,$(dir $@)) +# environment +VSCODE_HANDLES_UNCAUGHT_ERRORS = true +# default +.VARIABLES := +# environment +PWD = /home/petty/github/logos/roadmap +# automatic +%D = $(patsubst %/,%,$(dir $%)) +# environment +LSCOLORS = dxFxCxDxBxegedabagacad +# environment +XDG_DATA_DIRS = /usr/share/pop:/home/petty/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/ +# environment +GITROB_ACCESS_TOKEN = c49c9d2ec4c374e85c96251d339e48b799299635 +# automatic +^D = $(patsubst %/,%,$(dir $^)) +# environment +VSCODE_LOG_STACK = false +# automatic +%F = $(notdir $%) +# environment +NVM_INC = /home/petty/.nvm/versions/node/v15.8.0/include/node +# environment +VSCODE_CODE_CACHE_PATH = /home/petty/.config/Code/CachedData/30d9c6cd9483b2cc586687151bcbcd635f373630 +# environment +LANG = C +# environment +XAUTHORITY = /run/user/1000/gdm/Xauthority +# default +.LOADED := +# environment +GVM_PATH_BACKUP = /home/petty/.gvm/bin:/home/petty/Qt/5.14.2/gcc_64/bin:/home/petty/.nimble/bin:/home/petty/.nvm/versions/node/v15.8.0/bin:/home/petty/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/go/bin:/home/petty/.local/bin:/home/petty/go/bin:/home/petty/GitHub/trueblocks/trueblocks-core/bin +# default +.INCLUDE_DIRS = /usr/local/include /usr/include /usr/include +# makefile +MAKEFLAGS = pqrR +# environment +PKG_CONFIG_PATH = /home/petty/.gvm/pkgsets/go1.18/global/overlay/lib/pkgconfig: +# environment +CERTORAKEY = 7c44e6b9f2327c0ee9bd7c577a00cb160cd457bb +# makefile +CURDIR := /home/petty/github/logos/roadmap +# environment +VSCODE_PIPE_LOGGING = true +# environment +APPLICATION_INSIGHTS_NO_DIAGNOSTIC_CHANNEL = 1 +# automatic +*D = $(patsubst %/,%,$(dir $*)) +# environment +MFLAGS = -pqrR +# environment +SSH_AUTH_SOCK = /run/user/1000/keyring/ssh +# default +.SHELLFLAGS := -c +# environment +NVM_BIN = /home/petty/.nvm/versions/node/v15.8.0/bin +# environment +XDG_CONFIG_DIRS = /etc/xdg/xdg-pop:/etc/xdg +# automatic ++D = $(patsubst %/,%,$(dir $+)) +# environment +XDG_SESSION_DESKTOP = pop +# makefile (from 'Makefile', line 1) +MAKEFILE_LIST := Makefile +# automatic +@F = $(notdir $@) +# environment +WEB3_INFURA_PROJECT_ID = ad89ee0df87340bba88c0608c5cf2fc2 +# environment +ZSH = /home/petty/.oh-my-zsh +# environment +VSCODE_VERBOSE_LOGGING = true +# environment +VSCODE_PID = 5085 +# environment +XDG_SESSION_TYPE = x11 +# automatic +?D = $(patsubst %/,%,$(dir $?)) +# environment +DYLD_LIBRARY_PATH = /home/petty/.gvm/pkgsets/go1.18/global/overlay/lib: +# environment +SESSION_MANAGER = local/pop-os:@/tmp/.ICE-unix/3095,unix/pop-os:/tmp/.ICE-unix/3095 +# automatic +*F = $(notdir $*) +# environment +CHROME_DESKTOP = code-url-handler.desktop +# environment +DBUS_SESSION_BUS_ADDRESS = unix:path=/run/user/1000/bus +# automatic + πŸ“š Step 1: [Setup your own digital garden using Quartz](notes/setup.md) - -Returning user? Figure out how to [[notes/updating|update]] your existing Quartz garden. - -If you prefer browsing the contents of this site through a list instead of a graph, you see a list of all [setup-related notes](/tags/setup). - -### Troubleshooting -- 🚧 [Troubleshooting and FAQ](notes/troubleshooting.md) -- πŸ› [Submit an Issue](https://github.com/jackyzha0/quartz/issues) -- πŸ‘€ [Discord Community](https://discord.gg/cRFFHYye7t) +## Navigation +- [Network Requirements](requirements/overview.md) +- Research and Development Roadmap + - [Consensus](roadmap/consensus/overview.md) + - Virtual Machines + - Economics + - Data Model + - Applications / Wallets +- Specifications +- [Open Roles](tags/role) diff --git a/content/notes/CJK + Latex Support (ζ΅‹θ―•).md b/content/private/notes/CJK + Latex Support (ζ΅‹θ―•).md similarity index 96% rename from content/notes/CJK + Latex Support (ζ΅‹θ―•).md rename to content/private/notes/CJK + Latex Support (ζ΅‹θ―•).md index d6e4ae968..989033c7d 100644 --- a/content/notes/CJK + Latex Support (ζ΅‹θ―•).md +++ b/content/private/notes/CJK + Latex Support (ζ΅‹θ―•).md @@ -37,4 +37,4 @@ a & b & c $$ ## RTL -More information on configuring RTL languages like Arabic in the [config](notes/config.md) page. +More information on configuring RTL languages like Arabic in the [config](config.md) page. diff --git a/content/notes/callouts.md b/content/private/notes/callouts.md similarity index 100% rename from content/notes/callouts.md rename to content/private/notes/callouts.md diff --git a/content/notes/config.md b/content/private/notes/config.md similarity index 98% rename from content/notes/config.md rename to content/private/notes/config.md index e1633a006..034813049 100644 --- a/content/notes/config.md +++ b/content/private/notes/config.md @@ -202,10 +202,10 @@ For example, the structure of the home page can be edited through `/layouts/inde More info about partials on [Hugo's website.](https://gohugo.io/templates/partials/) -Still having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). +Still having problems? Checkout our [FAQ and Troubleshooting guide](troubleshooting.md). ## Language Support -[CJK + Latex Support (ζ΅‹θ―•)](notes/CJK%20+%20Latex%20Support%20(ζ΅‹θ―•).md) comes out of the box with Quartz. +[CJK + Latex Support (ζ΅‹θ―•)](CJK%20+%20Latex%20Support%20(ζ΅‹θ―•).md) comes out of the box with Quartz. Want to support languages that read from right-to-left (like Arabic)? Hugo (and by proxy, Quartz) supports this natively. diff --git a/content/notes/custom Domain.md b/content/private/notes/custom Domain.md similarity index 90% rename from content/notes/custom Domain.md rename to content/private/notes/custom Domain.md index 72cb466eb..6bef9e62f 100644 --- a/content/notes/custom Domain.md +++ b/content/private/notes/custom Domain.md @@ -12,6 +12,6 @@ GitHub has some [documentation on this](https://docs.github.com/en/pages/configu 1. Go to your forked repository (`github.com//quartz`) settings page and go to the Pages tab. Under "Custom domain", type your custom domain, then click **Save**. 2. Go to your DNS Provider and create a CNAME record that points from your domain to ` πŸ”— Step 3: [How to setup your Obsidian Vault to work with Quartz](notes/obsidian.md) +> πŸ”— Step 3: [How to setup your Obsidian Vault to work with Quartz](obsidian.md) ## Previewing Changes This step is purely optional and mostly for those who want to see the published version of their digital garden locally before opening it up to the internet. This is *highly recommended* but not required. -> πŸ‘€ Step 4: [Preview Quartz Changes](notes/preview%20changes.md) +> πŸ‘€ Step 4: [Preview Quartz Changes](preview%20changes.md) For those who like to live life more on the edge, viewing the garden through Obsidian gets you pretty close to the real thing. ## Publishing Changes Now that you know the basics of managing your digital garden using Quartz, you can publish it to the internet! -> 🌍 Step 5: [Hosting Quartz online!](notes/hosting.md) +> 🌍 Step 5: [Hosting Quartz online!](hosting.md) -Having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). +Having problems? Checkout our [FAQ and Troubleshooting guide](troubleshooting.md). diff --git a/content/notes/hosting.md b/content/private/notes/hosting.md similarity index 86% rename from content/notes/hosting.md rename to content/private/notes/hosting.md index fffcd653a..a7017036f 100644 --- a/content/notes/hosting.md +++ b/content/private/notes/hosting.md @@ -13,7 +13,7 @@ Quartz is designed to be effortless to deploy. If you forked and cloned Quartz d ### Enable GitHub Actions By default, GitHub disables workflows from running automatically on Forked Repostories. Head to the 'Actions' tab of your forked repository and Enable Workflows to setup deploying your Quartz site! -![Enable GitHub Actions](notes/images/github-actions.png)*Enable GitHub Actions* +![Enable GitHub Actions](github-actions.png)*Enable GitHub Actions* ### Enable GitHub Pages @@ -22,7 +22,7 @@ Head to the 'Settings' tab of your forked repository and go to the 'Pages' tab. 1. (IMPORTANT) Set the source to deploy from `master` (and not `hugo`) using `/ (root)` 2. Set a custom domain here if you have one! -![Enable GitHub Pages](/notes/images/github-pages.png)*Enable GitHub Pages* +![Enable GitHub Pages](github-pages.png)*Enable GitHub Pages* ### Pushing Changes To see your changes on the internet, we need to push it them to GitHub. Quartz is a `git` repository so updating it is the same workflow as you would follow as if it were just a regular software project. @@ -76,17 +76,17 @@ Please note that the `cname` field should *not* have any path `e.g. end with /qu cname: ``` -Have a custom domain? [Learn how to set it up with Quartz ](notes/custom%20Domain.md). +Have a custom domain? [Learn how to set it up with Quartz ](custom%20Domain.md). ### Ignoring Files Only want to publish a subset of all of your notes? Don't worry, Quartz makes this a simple two-step process. -❌ [Excluding pages from being published](notes/ignore%20notes.md) +❌ [Excluding pages from being published](ignore%20notes.md) --- Now that your Quartz is live, let's figure out how to make Quartz really *yours*! -> Step 6: 🎨 [Customizing Quartz](notes/config.md) +> Step 6: 🎨 [Customizing Quartz](config.md) -Having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). +Having problems? Checkout our [FAQ and Troubleshooting guide](troubleshooting.md). diff --git a/content/notes/ignore notes.md b/content/private/notes/ignore notes.md similarity index 100% rename from content/notes/ignore notes.md rename to content/private/notes/ignore notes.md diff --git a/content/notes/images/github-actions.png b/content/private/notes/images/github-actions.png similarity index 100% rename from content/notes/images/github-actions.png rename to content/private/notes/images/github-actions.png diff --git a/content/notes/images/github-pages.png b/content/private/notes/images/github-pages.png similarity index 100% rename from content/notes/images/github-pages.png rename to content/private/notes/images/github-pages.png diff --git a/content/notes/images/google-domains.png b/content/private/notes/images/google-domains.png similarity index 100% rename from content/notes/images/google-domains.png rename to content/private/notes/images/google-domains.png diff --git a/content/notes/images/obsidian-settings.png b/content/private/notes/images/obsidian-settings.png similarity index 100% rename from content/notes/images/obsidian-settings.png rename to content/private/notes/images/obsidian-settings.png diff --git a/content/notes/obsidian.md b/content/private/notes/obsidian.md similarity index 86% rename from content/notes/obsidian.md rename to content/private/notes/obsidian.md index c709a70d7..693e506db 100644 --- a/content/notes/obsidian.md +++ b/content/private/notes/obsidian.md @@ -9,7 +9,7 @@ weight: -3 Obsidian is the preferred way to use Quartz. You can either create a new Obsidian Vault or link one that your already have. ### New Vault -If you don't have an existing Vault, [download Obsidian](https://obsidian.md/) and create a new Vault in the `/content` folder that you created and cloned during the [setup](notes/setup.md) step. +If you don't have an existing Vault, [download Obsidian](https://obsidian.md/) and create a new Vault in the `/content` folder that you created and cloned during the [setup](setup.md) step. ### Linking an existing Vault The easiest way to use an existing Vault is to copy all of your files (directory and hierarchies intact) into the `/content` folder. @@ -20,7 +20,7 @@ Great, now that you have your Obsidian linked to your Quartz, let's fix some set 1. Under Options > Files and Links, set the New link format to always use Absolute Path in Vault. 2. Go to Settings > Files & Links > Turn "on" automatically update internal links. -![Obsidian Settings](/notes/images/obsidian-settings.png)*Obsidian Settings* +![Obsidian Settings](obsidian-settings.png)*Obsidian Settings* ## Templates Inserting front matter everytime you want to create a new Note gets annoying really quickly. Luckily, Obsidian supports templates which makes inserting new content really easily. @@ -29,4 +29,4 @@ Inserting front matter everytime you want to create a new Note gets annoying rea Head over to Options > Core Plugins and enable the Templates plugin. Then go to Options > Hotkeys and set a hotkey for 'Insert Template' (I recommend `[cmd]+T`). That way, when you create a new note, you can just press the hotkey for a new template and be ready to go! -> πŸ‘€ Step 4: [Preview Quartz Changes](notes/preview%20changes.md) \ No newline at end of file +> πŸ‘€ Step 4: [Preview Quartz Changes](preview%20changes.md) \ No newline at end of file diff --git a/content/notes/philosophy.md b/content/private/notes/philosophy.md similarity index 100% rename from content/notes/philosophy.md rename to content/private/notes/philosophy.md diff --git a/content/notes/preview changes.md b/content/private/notes/preview changes.md similarity index 95% rename from content/notes/preview changes.md rename to content/private/notes/preview changes.md index 937b99bab..b4abe0762 100644 --- a/content/notes/preview changes.md +++ b/content/private/notes/preview changes.md @@ -34,4 +34,4 @@ make serve # View your site in a browser at http://localhost:1313/ ``` -> 🌍 Step 5: [Hosting Quartz online!](notes/hosting.md) \ No newline at end of file +> 🌍 Step 5: [Hosting Quartz online!](hosting.md) \ No newline at end of file diff --git a/content/notes/search.md b/content/private/notes/search.md similarity index 95% rename from content/notes/search.md rename to content/private/notes/search.md index ed170f64d..b5246e4ca 100644 --- a/content/notes/search.md +++ b/content/private/notes/search.md @@ -38,7 +38,7 @@ Here's how to set it up. enableSemanticSearch: true operandApiKey: "0e733a7f-9b9c-48c6-9691-b54fa1c8b910" ``` -7. Make a commit and push your changes to GitHub. See the [[notes/hosting|hosting]] page if you haven't done this already. +7. Make a commit and push your changes to GitHub. See the [[hosting|hosting]] page if you haven't done this already. 1. This step is *required* for Operand to be able to properly index your content. 2. Head over to Dashboard > Objects and select the collection that you made earlier 8. Press `(Cmd + K)` to open the omnibar again and select 'Create GitHub Repo' diff --git a/content/notes/setup.md b/content/private/notes/setup.md similarity index 89% rename from content/notes/setup.md rename to content/private/notes/setup.md index 00254159c..d72e84bf5 100644 --- a/content/notes/setup.md +++ b/content/private/notes/setup.md @@ -27,6 +27,6 @@ git clone https://github.com/YOUR-USERNAME/quartz ## Editing Great! Now you have everything you need to start editing and growing your digital garden. If you're ready to start writing content already, check out the recommended flow for editing notes in Quartz. -> ✏️ Step 2: [Editing Notes in Quartz](notes/editing.md) +> ✏️ Step 2: [Editing Notes in Quartz](editing.md) -Having problems? Checkout our [FAQ and Troubleshooting guide](notes/troubleshooting.md). +Having problems? Checkout our [FAQ and Troubleshooting guide](troubleshooting.md). diff --git a/content/notes/showcase.md b/content/private/notes/showcase.md similarity index 100% rename from content/notes/showcase.md rename to content/private/notes/showcase.md diff --git a/content/notes/troubleshooting.md b/content/private/notes/troubleshooting.md similarity index 82% rename from content/notes/troubleshooting.md rename to content/private/notes/troubleshooting.md index 66eb87929..361f1f38d 100644 --- a/content/notes/troubleshooting.md +++ b/content/private/notes/troubleshooting.md @@ -7,7 +7,7 @@ Still having trouble? Here are a list of common questions and problems people en While you're here, join our [Discord](https://discord.gg/cRFFHYye7t) :) ### Does Quartz have Latex support? -Yes! See [CJK + Latex Support (ζ΅‹θ―•)](notes/CJK%20+%20Latex%20Support%20(ζ΅‹θ―•).md) for a brief demo. +Yes! See [CJK + Latex Support (ζ΅‹θ―•)](CJK%20+%20Latex%20Support%20(ζ΅‹θ―•).md) for a brief demo. ### Can I use \ in Quartz? Unless it produces direct Markdown output in the file, no. There currently is no way to bundle plugin code with Quartz. @@ -15,7 +15,7 @@ Unless it produces direct Markdown output in the file, no. There currently is no The easiest way would be to add your own HTML partial that supports the functionality you are looking for. ### My GitHub pages is just showing the README and not Quartz -Make sure you set the source to deploy from `master` (and not `hugo`) using `/ (root)`! See more in the [hosting](/notes/hosting) guide +Make sure you set the source to deploy from `master` (and not `hugo`) using `/ (root)`! See more in the [hosting](hosting.md) guide ### Some of my pages have 'January 1, 0001' as the last modified date This is a problem caused by `git` treating files as case-insensitive by default and some of your posts probably have capitalized file names. You can turn this off in your Quartz by running this command. @@ -29,10 +29,10 @@ git config --global core.ignorecase true ``` ### Can I publish only a subset of my pages? -Yes! Quartz makes selective publishing really easy. Heres a guide on [excluding pages from being published](notes/ignore%20notes.md). +Yes! Quartz makes selective publishing really easy. Heres a guide on [excluding pages from being published](ignore%20notes.md). ### Can I host this myself and not on GitHub Pages? -Yes! All built files can be found under `/public` in the `master` branch. More details under [hosting](notes/hosting.md). +Yes! All built files can be found under `/public` in the `master` branch. More details under [hosting](hosting.md). ### `command not found: hugo-obsidian` Make sure you set your `GOPATH` correctly! This will allow your terminal to correctly recognize `hugo-obsidian` as an executable. @@ -47,10 +47,10 @@ source ~/.bash_profile ``` ### How come my notes aren't being rendered? -You probably forgot to include front matter in your Markdown files. You can either setup [Obsidian](notes/obsidian.md) to do this for you or you need to manually define it. More details in [the 'how to edit' guide](notes/editing.md). +You probably forgot to include front matter in your Markdown files. You can either setup [Obsidian](obsidian.md) to do this for you or you need to manually define it. More details in [the 'how to edit' guide](editing.md). ### My custom domain isn't working! -Walk through the steps in [the hosting guide](notes/hosting.md) again. Make sure you wait 30 min to 1 hour for changes to take effect. +Walk through the steps in [the hosting guide](hosting.md) again. Make sure you wait 30 min to 1 hour for changes to take effect. ### How do I setup Google Analytics? You can edit it in `config.toml` and either use a V3 (UA-) or V4 (G-) tag. @@ -59,7 +59,7 @@ You can edit it in `config.toml` and either use a V3 (UA-) or V4 (G-) tag. To edit the main home page, open `/content/_index.md`. ### How do I change the colours? -You can change the theme by editing `assets/custom.scss`. More details on customization and themeing can be found in the [customization guide](notes/config.md). +You can change the theme by editing `assets/custom.scss`. More details on customization and themeing can be found in the [customization guide](config.md). ### How do I add images? You can put images anywhere in the `/content` folder. @@ -70,7 +70,7 @@ Example image (source is in content/notes/images/example.png) ``` ### My Interactive Graph and Backlinks aren't up to date -By default, the `linkIndex.json` (which Quartz needs to generate the Interactive Graph and Backlinks) are not regenerated locally. To set that up, see the guide on [local editing](notes/editing.md) +By default, the `linkIndex.json` (which Quartz needs to generate the Interactive Graph and Backlinks) are not regenerated locally. To set that up, see the guide on [local editing](editing.md) ### Can I use React/Vue/some other framework? Not out of the box. You could probably make it work by editing `/layouts/_default/single.html` but that's not what Quartz is designed to work with. 99% of things you are trying to do with those frameworks you can accomplish perfectly fine using just vanilla HTML/CSS/JS. diff --git a/content/notes/updating.md b/content/private/notes/updating.md similarity index 100% rename from content/notes/updating.md rename to content/private/notes/updating.md diff --git a/content/requirements/overview.md b/content/requirements/overview.md new file mode 100644 index 000000000..c3ea2ce60 --- /dev/null +++ b/content/requirements/overview.md @@ -0,0 +1,8 @@ +--- +title: "Logos Network Requirements Overview" +tags: + - "requirements" +--- + +This document describes the requirements of the Logos Network. + diff --git a/content/roadmap/consensus/candidates/glacier.md b/content/roadmap/consensus/candidates/glacier.md new file mode 100644 index 000000000..448607e6d --- /dev/null +++ b/content/roadmap/consensus/candidates/glacier.md @@ -0,0 +1,25 @@ +--- +title: "Glacier: Consensus Candidate" +tags: + - "consensus" + - "candidate" +--- + + + +**Glacier** is a consensus candidate for the Logos network that aims to be an improvement to the Avalanche family of consensus protocols. + + +### Implementations +The protocol has been implemented in multiple languages to facilitate learning and testing. The individual code repositories can be found in the following links: +- Rust (reference) +- Python +- Common Lisp + +### Simulations/Experiments/Analysis +In order to test the performance of the protocol, and how it stacked up to the Avalanche family of protocols, we have performed a multitude of simulations and experiments under various assumptions. + +### Specification +Currently the Glacier consensus protocol is being drafted into a specification so that other implementations can be created. It's draft resides under [Vac](https://vac.dev) and can be tracked [here](https://github.com/vacp2p/rfc/pull/512/) + +### Additional Information diff --git a/content/roadmap/consensus/candidates/logos-bft/overview.md b/content/roadmap/consensus/candidates/logos-bft/overview.md new file mode 100644 index 000000000..dfba4ef25 --- /dev/null +++ b/content/roadmap/consensus/candidates/logos-bft/overview.md @@ -0,0 +1,16 @@ +--- +title: "Logos BFT Overview" +tags: + - "consensus" + - "candidate" +editor: "Corey Petty" +--- + +Logos BFT is a [consensus](/consensus/index.md) candidate for the Logos Network that utilizes [Network Coding](https://en.wikipedia.org/wiki/Linear_network_coding) and [Committees](#) to optimize message propagation in the presence of a large number of nodes, while maintaining a high level of security. + +## Work Streams +- [Committee Formation](committee-formation.md) +- [Random Beacon](random-beacon.md) +- [Message Dissemination](message-dissemination.md) +- [Leader Election](leader-election.md) +- [] diff --git a/content/roadmap/consensus/development/overview.md b/content/roadmap/consensus/development/overview.md new file mode 100644 index 000000000..ac0267777 --- /dev/null +++ b/content/roadmap/consensus/development/overview.md @@ -0,0 +1,6 @@ +--- +title: "Development Work" +tags: + - "consensus" + - "development" +--- \ No newline at end of file diff --git a/content/roadmap/consensus/development/prototypes.md b/content/roadmap/consensus/development/prototypes.md new file mode 100644 index 000000000..0718df3f8 --- /dev/null +++ b/content/roadmap/consensus/development/prototypes.md @@ -0,0 +1,11 @@ +--- +title: "Consensus Prototypes" +tags: + - "consensus" + - "development" +--- + +Consensus Prototypes is a collection of Rust implementations of the [Consensus Candidates](tags/candidates) + +## Required Roles +- Lead Developer (filled) \ No newline at end of file diff --git a/content/roadmap/consensus/overview.md b/content/roadmap/consensus/overview.md new file mode 100644 index 000000000..2ceb15a61 --- /dev/null +++ b/content/roadmap/consensus/overview.md @@ -0,0 +1,21 @@ +--- +title: "Consensus Work" +tags: + - "consensus" +--- + +Consensus is the foundation of the network. It is how a group of peer-to-peer nodes understands how to agree on information in a distributed way. + +## Consensus Roadmap +### Consensus Candidates +- [glacier](roadmap/consensus/candidates/glacier.md) +- [logos-bft](roadmap/consensus/candidates/logos-bft.md) + +### Theoretical Analysis +- [snow-family](roadmap/consensus/theory/snow-family.md) + +### Development +- [prototypes](roadmap/consensus/development/prototypes.md) + +## Open Roles +- [distributed-systems-researcher](roles/distributed-systems-researcher.md) \ No newline at end of file diff --git a/content/roadmap/consensus/theory/overview.md b/content/roadmap/consensus/theory/overview.md new file mode 100644 index 000000000..9cee57bf1 --- /dev/null +++ b/content/roadmap/consensus/theory/overview.md @@ -0,0 +1,11 @@ +--- +title: "Consensus Theory Work" +tags: + - "consensus" + - "theory" +--- + +This track of work is dedicated to creating theoretical models of distributed consensus in order to evaluate them from a mathematical standpoint. + +## Navigation +- [Snow Family Analysis](snow-family.md) diff --git a/content/roadmap/consensus/theory/snow-family.md b/content/roadmap/consensus/theory/snow-family.md new file mode 100644 index 000000000..9130d6303 --- /dev/null +++ b/content/roadmap/consensus/theory/snow-family.md @@ -0,0 +1,8 @@ +--- +title: "Theoretical Analysis of the Snow Family of Consensus Protocols" +tags: + - "consensus" + - "theory" +--- + +In order to evaluate the properties of the Avalanche family of consensus protocols more rigorously than the original [whitepapers](), we work to create an analytical framework to explore and better understand the theoretical boundaries of the underlying protocols, and under what parameterization they will break vs a set of adversarial strategies \ No newline at end of file diff --git a/content/roles/distributed-systems-researcher.md b/content/roles/distributed-systems-researcher.md new file mode 100644 index 000000000..b9d0f4290 --- /dev/null +++ b/content/roles/distributed-systems-researcher.md @@ -0,0 +1,83 @@ +--- +title: "Open Role: Distributed Systems Researcher" +tags: + - "role" +--- + + +## About Status + +Status is building the tools and infrastructure for the advancement of a secure, private, and open web3. + +With the high level goals of preserving the right to privacy, mitigating the risk of censorship, and promoting economic trade in a transparent, open manner, Status is building a community where anyone is welcome to join and contribute. + +As an organization, Status seeks to push the web3 ecosystem forward through research, creation of developer tools, and support of the open source community. + +As a product, Status is an open source, Ethereum-based app that gives users the power to chat, transact, and access a revolutionary world of DApps on the decentralized web. But Status is also building foundational infrastructure for the whole Ethereum ecosystem, including the Nimbus ETH 1.0 and 2.0 clients, the Keycard hardware wallet, and the Waku messaging protocol (a continuation of Whisper). + +As a team, Status has been completely distributed since inception. Our team is currently 100+ core contributors strong, and welcomes a growing number of community members from all walks of life, scattered all around the globe. + +We care deeply about open source, and our organizational structure has minimal hierarchy and no fixed work hours. We believe in working with a high degree of autonomy while supporting the organization's priorities. + + + +## Who are we? + +We are the Blockchain Infrastructure Team, and we are building the foundation used by other projects at the Status Network. We are researching consensus algorithms, Multi-Party Computation techniques, ZKPs and other cutting-edge solutions with the aim to take the blockchain technology to the next level of security, decentralization and scalability for a wide range of use cases. We are currently in a research phase, working with models and simulations. In the near future, we will start implementing the research. You will have the opportunity to participate in developing -and improving- the state of the art of blockchain technologies, as well as turning it into a reality + +## The job + +**Responsibilities:** +- This role is dedicated to pure research +- Primarily, ensuring that solutions are sound and diving deeper into their formal definition. +- Additionally, he/she would be regularly going through papers, bringing new ideas and staying up-to-date. +- Designing, specifying and verifying distributed systems by leveraging formal and experimental techniques. +- Conducting theoretical and practical analysis of the performance of distributed systems. +- Designing and analysing incentive systems. +- Collaborating with both internal and external customers and the teams responsible for the actual implementation. +- Researching new techniques for designing, analysing and implementing dependable distributed systems. +- Publishing and presenting research results both internally and externally. + + +**Ideally you will have:** +[Don’t worry if you don’t meet all of these criteria, we’d still love to hear from you anyway if you think you’d be a great fit for this role!] +- Strong background in Computer Science and Math, or a related area. +- Academic background (The ability to analyze, digest and improve the State of the Art in our fields of interest. Specifically, familiarity with formal proofs and/or the scientific method.) +- Distributed Systems with a focus on Blockchain +- Analysis of algorithms +- Familiarity with Python and/or complex systems modeling software +- Deep knowledge of algorithms (much more academic, such as have dealt with papers, moving from research to pragmatic implementation) +- Experience in analysing the correctness and security of distributed systems. +- Familiarity with the application of formal method techniques. +- Comfortable with β€œreverse engineering” code in a number of languages including Java, Go, Rust, etc. Even if no experience in these languages, the ability to read and "reverse engineer" code of other projects is important. +- Keen communicator, eager to share your work in a wide variety of contexts, like internal and public presentations, blog posts and academic papers. +- Capable of deep and creative thinking. +- Passionate about blockchain technology in general. +- Able to manage the uncertainties and ambiguities associated with working in a remote-first, distributed, decentralised environment. +- A strong alignment to our principles: https://status.im/about/#our-principles + + +**Bonus points:** +- Experience working remotely. +- Experience working for an open source organization. +- TLA+/PRISM would be desirable. +- PhD in Computer Science, Mathematics, or a related area. +- Experience Multi-Party Computation and Zero-Knowledge Proofs +- Track record of scientific publications. +- Previous experience in remote or globally distributed teams. + +## Hiring process + +The hiring process for this role will be: +- Interview with our People Ops team +- Interview with Alvaro (Team Lead) +- Interview with Corey (Chief Security Officer) +- Interview with Jarrad (Cofounder) or Daniel + +The steps may change along the way if we see it makes sense to adapt the interview stages, so please consider the above as a guideline. + + + +## Compensation + +We are happy to pay salaries in either 100% fiat or any mix of fiat and/or crypto. For more information regarding benefits at Status: https://people-ops.status.im/tag/perks/ diff --git a/data/config.yaml b/data/config.yaml index 00c6b741b..7d4876b36 100644 --- a/data/config.yaml +++ b/data/config.yaml @@ -1,4 +1,4 @@ -name: Jacky Zhao +name: Logos enableToc: true openToc: false enableLinkPreview: true @@ -18,9 +18,9 @@ description: Host your second brain and digital garden for free. Quartz features extremely fast full-text search, Wikilink support, backlinks, local graph, tags, and link previews. page_title: - "πŸͺ΄ Quartz 3.2" + "Logos Technical Roadmap" links: - link_name: Twitter link: https://twitter.com/_jzhao - link_name: Github - link: https://github.com/jackyzha0 + link: https://github.com/logos-co/roadmap