diff --git a/.github/workflows/cd-docs.yml b/.github/workflows/cd-docs.yml
index 7460210e00..2550bc04c7 100644
--- a/.github/workflows/cd-docs.yml
+++ b/.github/workflows/cd-docs.yml
@@ -33,21 +33,20 @@ jobs:
# This is the original flow
# - name: Build all projects in documentation/ & move to ~/dist/docs/
# run: cd documentation && ./build_all_to_dist.sh
-# continue-on-error: false
-# This is a dirty hack replacement which builds on develop and then on current branch
+# This is a workaround replacement which builds on the last working commit b332a6b55668f60988e36961f3f62a794ba82ddb and then on current branch
- name: Save current branch to ~/current_branch
run: git rev-parse --abbrev-ref HEAD > ~/current_branch
- - name: Git pull & switch to develop
- run: git pull && git checkout develop
- - name: Build all projects in documentation/ & move to ~/dist/docs/ on develop
+ - name: Git pull & switch to b332a6b55668f60988e36961f3f62a794ba82ddb
+ run: git pull && git checkout b332a6b55668f60988e36961f3f62a794ba82ddb
+ - name: Build all projects in documentation/ & move to ~/dist/docs/ from b332a6b55668f60988e36961f3f62a794ba82ddb
run: cd documentation && ./build_all_to_dist.sh
- continue-on-error: false
+
- name: Switch to current branch
run: git checkout $echo "$(cat ~/current_branch)"
- name: Build all projects in documentation/ & move to ~/dist/docs/ on current branch
run: cd documentation && ./build_all_to_dist.sh && rm ~/current_branch
- continue-on-error: false
+
# End of replacemet
- name: Post process
diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml
index 858a8ce69d..b1079db720 100644
--- a/.github/workflows/ci-docs.yml
+++ b/.github/workflows/ci-docs.yml
@@ -34,24 +34,27 @@ jobs:
- name: Remove existing Nym config directory (`~/.nym/`)
run: cd documentation && ./remove_existing_config.sh
continue-on-error: false
+# This is the original flow
+ - name: Build all projects in documentation/ & move to ~/dist/docs/
+ run: cd documentation && ./build_all_to_dist.sh
+
# This is the original flow
# - name: Build all projects in documentation/ & move to ~/dist/docs/
# run: cd documentation && ./build_all_to_dist.sh
-# continue-on-error: false
-# This is a dirty hack replacement which builds on develop and then on current branch
+# This is a workaround replacement which builds on the last working commit b332a6b55668f60988e36961f3f62a794ba82ddb and then on current branch
- name: Save current branch to ~/current_branch
run: git rev-parse --abbrev-ref HEAD > ~/current_branch
- - name: Git pull & switch to develop
- run: git pull && git checkout develop
- - name: Build all projects in documentation/ & move to ~/dist/docs/ on develop
+ - name: Git pull & switch to b332a6b55668f60988e36961f3f62a794ba82ddb
+ run: git pull && git checkout b332a6b55668f60988e36961f3f62a794ba82ddb
+ - name: Build all projects in documentation/ & move to ~/dist/docs/ from b332a6b55668f60988e36961f3f62a794ba82ddb
run: cd documentation && ./build_all_to_dist.sh
- continue-on-error: false
+
- name: Switch to current branch
run: git checkout $echo "$(cat ~/current_branch)"
- name: Build all projects in documentation/ & move to ~/dist/docs/ on current branch
run: cd documentation && ./build_all_to_dist.sh && rm ~/current_branch
- continue-on-error: false
+
# End of replacemet
- name: Deploy branch to CI www
diff --git a/documentation/build_all_to_dist.sh b/documentation/build_all_to_dist.sh
index 76c58f5e6d..63833c4359 100755
--- a/documentation/build_all_to_dist.sh
+++ b/documentation/build_all_to_dist.sh
@@ -26,6 +26,7 @@ else
echo "cleaning old book"
rm -rf ./book/
# build book
+ # mdbook test || true
mdbook build
# check for destination, if ! then mkdir & check again else echo thumbs up
if [ ! -d ../../dist/docs/$i ]; then
diff --git a/documentation/dev-portal/nym_themes/mdbook-admonish.css b/documentation/dev-portal/nym_themes/mdbook-admonish.css
index e0a3365532..45aeff0511 100644
--- a/documentation/dev-portal/nym_themes/mdbook-admonish.css
+++ b/documentation/dev-portal/nym_themes/mdbook-admonish.css
@@ -1,20 +1,4 @@
@charset "UTF-8";
-:root {
- --md-admonition-icon--admonish-note: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-abstract: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-info: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-tip: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-success: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-question: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-warning: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-failure: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-danger: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-bug: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-example: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-quote: url("data:image/svg+xml;charset=utf-8,");
- --md-details-icon: url("data:image/svg+xml;charset=utf-8,");
-}
-
:is(.admonition) {
display: flow-root;
margin: 1.5625em 0;
@@ -71,6 +55,8 @@ a.admonition-anchor-link::before {
padding-inline: 4.4rem 1.2rem;
font-weight: 700;
background-color: rgba(68, 138, 255, 0.1);
+ print-color-adjust: exact;
+ -webkit-print-color-adjust: exact;
display: flex;
}
:is(.admonition-title, summary.admonition-title) p {
@@ -86,6 +72,8 @@ html :is(.admonition-title, summary.admonition-title):last-child {
width: 2rem;
height: 2rem;
background-color: #448aff;
+ print-color-adjust: exact;
+ -webkit-print-color-adjust: exact;
mask-image: url('data:image/svg+xml;charset=utf-8,');
-webkit-mask-image: url('data:image/svg+xml;charset=utf-8,');
mask-repeat: no-repeat;
@@ -119,6 +107,25 @@ details[open].admonition > summary.admonition-title::after {
transform: rotate(90deg);
}
+:root {
+ --md-details-icon: url("data:image/svg+xml;charset=utf-8,");
+}
+
+:root {
+ --md-admonition-icon--admonish-note: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-abstract: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-info: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-tip: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-success: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-question: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-warning: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-failure: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-danger: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-bug: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-example: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-quote: url("data:image/svg+xml;charset=utf-8,");
+}
+
:is(.admonition):is(.admonish-note) {
border-color: #448aff;
}
diff --git a/documentation/docs/nym_themes/mdbook-admonish.css b/documentation/docs/nym_themes/mdbook-admonish.css
index e0a3365532..45aeff0511 100644
--- a/documentation/docs/nym_themes/mdbook-admonish.css
+++ b/documentation/docs/nym_themes/mdbook-admonish.css
@@ -1,20 +1,4 @@
@charset "UTF-8";
-:root {
- --md-admonition-icon--admonish-note: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-abstract: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-info: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-tip: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-success: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-question: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-warning: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-failure: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-danger: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-bug: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-example: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-quote: url("data:image/svg+xml;charset=utf-8,");
- --md-details-icon: url("data:image/svg+xml;charset=utf-8,");
-}
-
:is(.admonition) {
display: flow-root;
margin: 1.5625em 0;
@@ -71,6 +55,8 @@ a.admonition-anchor-link::before {
padding-inline: 4.4rem 1.2rem;
font-weight: 700;
background-color: rgba(68, 138, 255, 0.1);
+ print-color-adjust: exact;
+ -webkit-print-color-adjust: exact;
display: flex;
}
:is(.admonition-title, summary.admonition-title) p {
@@ -86,6 +72,8 @@ html :is(.admonition-title, summary.admonition-title):last-child {
width: 2rem;
height: 2rem;
background-color: #448aff;
+ print-color-adjust: exact;
+ -webkit-print-color-adjust: exact;
mask-image: url('data:image/svg+xml;charset=utf-8,');
-webkit-mask-image: url('data:image/svg+xml;charset=utf-8,');
mask-repeat: no-repeat;
@@ -119,6 +107,25 @@ details[open].admonition > summary.admonition-title::after {
transform: rotate(90deg);
}
+:root {
+ --md-details-icon: url("data:image/svg+xml;charset=utf-8,");
+}
+
+:root {
+ --md-admonition-icon--admonish-note: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-abstract: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-info: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-tip: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-success: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-question: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-warning: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-failure: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-danger: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-bug: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-example: url("data:image/svg+xml;charset=utf-8,");
+ --md-admonition-icon--admonish-quote: url("data:image/svg+xml;charset=utf-8,");
+}
+
:is(.admonition):is(.admonish-note) {
border-color: #448aff;
}
diff --git a/documentation/install_mdbook_deps.sh b/documentation/install_mdbook_deps.sh
index 7344b1e586..6baf0c98d2 100755
--- a/documentation/install_mdbook_deps.sh
+++ b/documentation/install_mdbook_deps.sh
@@ -13,12 +13,12 @@ declare -a plugins=("admonish" "linkcheck" "last-changed" "theme" "variables" "c
# install mdbook + plugins
install_mdbook_deps() {
- printf "\ninstalling mdbook..."
- # installing mdbook with only specific features for speed
+ printf "\ninstalling mdbook..."
+ # installing mdbook with only specific features for speed
# cargo install mdbook --no-default-features --features search --vers "^$MINOR_VERSION"
cargo install mdbook --vers "^$MINOR_VERSION"
- printf "\ninstalling plugins..."
+ printf "\ninstalling plugins..."
for i in "${plugins[@]}"
do
cargo install mdbook-$i
@@ -41,13 +41,13 @@ install_mdbook_deps() {
# uninstall mdbook + plugins
uninstall_mdbook_deps() {
# mdbook
- printf "\nuninstalling existing mdbook installation...\n"
- cargo uninstall mdbook
- # check it worked
+ printf "\nuninstalling existing mdbook installation...\n"
+ cargo uninstall mdbook
+ # check it worked
if [ $? -ne 0 ]; then
printf "\nsomething went wrong, exiting"
exit 1
- else
+ else
printf "\nmdbook deleted\n"
fi
@@ -57,10 +57,10 @@ uninstall_mdbook_deps() {
do
cargo uninstall mdbook-$i
# check it worked
- if [ $? -ne 0 ]; then
+ if [ $? -ne 0 ]; then
printf "\nsomething went wrong, exiting"
exit 1
- else
+ else
printf "\nmdbook-$i deleted\n"
fi
done
@@ -71,10 +71,10 @@ main() {
printf "mdbook already installed (located at: $(which mdbook))"
uninstall_mdbook_deps;
install_mdbook_deps;
- else
+ else
printf "mdbook not installed"
install_mdbook_deps;
fi
}
-main;
+main;
diff --git a/documentation/operators/nym_themes/mdbook-admonish.css.bak b/documentation/operators/nym_themes/mdbook-admonish.css.bak
deleted file mode 100644
index e0a3365532..0000000000
--- a/documentation/operators/nym_themes/mdbook-admonish.css.bak
+++ /dev/null
@@ -1,341 +0,0 @@
-@charset "UTF-8";
-:root {
- --md-admonition-icon--admonish-note: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-abstract: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-info: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-tip: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-success: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-question: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-warning: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-failure: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-danger: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-bug: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-example: url("data:image/svg+xml;charset=utf-8,");
- --md-admonition-icon--admonish-quote: url("data:image/svg+xml;charset=utf-8,");
- --md-details-icon: url("data:image/svg+xml;charset=utf-8,");
-}
-
-:is(.admonition) {
- display: flow-root;
- margin: 1.5625em 0;
- padding: 0 1.2rem;
- color: var(--fg);
- page-break-inside: avoid;
- background-color: var(--bg);
- border: 0 solid black;
- border-inline-start-width: 0.4rem;
- border-radius: 0.2rem;
- box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.05), 0 0 0.1rem rgba(0, 0, 0, 0.1);
-}
-@media print {
- :is(.admonition) {
- box-shadow: none;
- }
-}
-:is(.admonition) > * {
- box-sizing: border-box;
-}
-:is(.admonition) :is(.admonition) {
- margin-top: 1em;
- margin-bottom: 1em;
-}
-:is(.admonition) > .tabbed-set:only-child {
- margin-top: 0;
-}
-html :is(.admonition) > :last-child {
- margin-bottom: 1.2rem;
-}
-
-a.admonition-anchor-link {
- display: none;
- position: absolute;
- left: -1.2rem;
- padding-right: 1rem;
-}
-a.admonition-anchor-link:link, a.admonition-anchor-link:visited {
- color: var(--fg);
-}
-a.admonition-anchor-link:link:hover, a.admonition-anchor-link:visited:hover {
- text-decoration: none;
-}
-a.admonition-anchor-link::before {
- content: "§";
-}
-
-:is(.admonition-title, summary.admonition-title) {
- position: relative;
- min-height: 4rem;
- margin-block: 0;
- margin-inline: -1.6rem -1.2rem;
- padding-block: 0.8rem;
- padding-inline: 4.4rem 1.2rem;
- font-weight: 700;
- background-color: rgba(68, 138, 255, 0.1);
- display: flex;
-}
-:is(.admonition-title, summary.admonition-title) p {
- margin: 0;
-}
-html :is(.admonition-title, summary.admonition-title):last-child {
- margin-bottom: 0;
-}
-:is(.admonition-title, summary.admonition-title)::before {
- position: absolute;
- top: 0.625em;
- inset-inline-start: 1.6rem;
- width: 2rem;
- height: 2rem;
- background-color: #448aff;
- mask-image: url('data:image/svg+xml;charset=utf-8,');
- -webkit-mask-image: url('data:image/svg+xml;charset=utf-8,');
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-size: contain;
- content: "";
-}
-:is(.admonition-title, summary.admonition-title):hover a.admonition-anchor-link {
- display: initial;
-}
-
-details.admonition > summary.admonition-title::after {
- position: absolute;
- top: 0.625em;
- inset-inline-end: 1.6rem;
- height: 2rem;
- width: 2rem;
- background-color: currentcolor;
- mask-image: var(--md-details-icon);
- -webkit-mask-image: var(--md-details-icon);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-size: contain;
- content: "";
- transform: rotate(0deg);
- transition: transform 0.25s;
-}
-details[open].admonition > summary.admonition-title::after {
- transform: rotate(90deg);
-}
-
-:is(.admonition):is(.admonish-note) {
- border-color: #448aff;
-}
-
-:is(.admonish-note) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(68, 138, 255, 0.1);
-}
-:is(.admonish-note) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #448aff;
- mask-image: var(--md-admonition-icon--admonish-note);
- -webkit-mask-image: var(--md-admonition-icon--admonish-note);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-abstract, .admonish-summary, .admonish-tldr) {
- border-color: #00b0ff;
-}
-
-:is(.admonish-abstract, .admonish-summary, .admonish-tldr) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(0, 176, 255, 0.1);
-}
-:is(.admonish-abstract, .admonish-summary, .admonish-tldr) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #00b0ff;
- mask-image: var(--md-admonition-icon--admonish-abstract);
- -webkit-mask-image: var(--md-admonition-icon--admonish-abstract);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-info, .admonish-todo) {
- border-color: #00b8d4;
-}
-
-:is(.admonish-info, .admonish-todo) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(0, 184, 212, 0.1);
-}
-:is(.admonish-info, .admonish-todo) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #00b8d4;
- mask-image: var(--md-admonition-icon--admonish-info);
- -webkit-mask-image: var(--md-admonition-icon--admonish-info);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-tip, .admonish-hint, .admonish-important) {
- border-color: #00bfa5;
-}
-
-:is(.admonish-tip, .admonish-hint, .admonish-important) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(0, 191, 165, 0.1);
-}
-:is(.admonish-tip, .admonish-hint, .admonish-important) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #00bfa5;
- mask-image: var(--md-admonition-icon--admonish-tip);
- -webkit-mask-image: var(--md-admonition-icon--admonish-tip);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-success, .admonish-check, .admonish-done) {
- border-color: #00c853;
-}
-
-:is(.admonish-success, .admonish-check, .admonish-done) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(0, 200, 83, 0.1);
-}
-:is(.admonish-success, .admonish-check, .admonish-done) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #00c853;
- mask-image: var(--md-admonition-icon--admonish-success);
- -webkit-mask-image: var(--md-admonition-icon--admonish-success);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-question, .admonish-help, .admonish-faq) {
- border-color: #64dd17;
-}
-
-:is(.admonish-question, .admonish-help, .admonish-faq) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(100, 221, 23, 0.1);
-}
-:is(.admonish-question, .admonish-help, .admonish-faq) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #64dd17;
- mask-image: var(--md-admonition-icon--admonish-question);
- -webkit-mask-image: var(--md-admonition-icon--admonish-question);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-warning, .admonish-caution, .admonish-attention) {
- border-color: #ff9100;
-}
-
-:is(.admonish-warning, .admonish-caution, .admonish-attention) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(255, 145, 0, 0.1);
-}
-:is(.admonish-warning, .admonish-caution, .admonish-attention) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #ff9100;
- mask-image: var(--md-admonition-icon--admonish-warning);
- -webkit-mask-image: var(--md-admonition-icon--admonish-warning);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-failure, .admonish-fail, .admonish-missing) {
- border-color: #ff5252;
-}
-
-:is(.admonish-failure, .admonish-fail, .admonish-missing) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(255, 82, 82, 0.1);
-}
-:is(.admonish-failure, .admonish-fail, .admonish-missing) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #ff5252;
- mask-image: var(--md-admonition-icon--admonish-failure);
- -webkit-mask-image: var(--md-admonition-icon--admonish-failure);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-danger, .admonish-error) {
- border-color: #ff1744;
-}
-
-:is(.admonish-danger, .admonish-error) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(255, 23, 68, 0.1);
-}
-:is(.admonish-danger, .admonish-error) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #ff1744;
- mask-image: var(--md-admonition-icon--admonish-danger);
- -webkit-mask-image: var(--md-admonition-icon--admonish-danger);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-bug) {
- border-color: #f50057;
-}
-
-:is(.admonish-bug) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(245, 0, 87, 0.1);
-}
-:is(.admonish-bug) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #f50057;
- mask-image: var(--md-admonition-icon--admonish-bug);
- -webkit-mask-image: var(--md-admonition-icon--admonish-bug);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-example) {
- border-color: #7c4dff;
-}
-
-:is(.admonish-example) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(124, 77, 255, 0.1);
-}
-:is(.admonish-example) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #7c4dff;
- mask-image: var(--md-admonition-icon--admonish-example);
- -webkit-mask-image: var(--md-admonition-icon--admonish-example);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-:is(.admonition):is(.admonish-quote, .admonish-cite) {
- border-color: #9e9e9e;
-}
-
-:is(.admonish-quote, .admonish-cite) > :is(.admonition-title, summary.admonition-title) {
- background-color: rgba(158, 158, 158, 0.1);
-}
-:is(.admonish-quote, .admonish-cite) > :is(.admonition-title, summary.admonition-title)::before {
- background-color: #9e9e9e;
- mask-image: var(--md-admonition-icon--admonish-quote);
- -webkit-mask-image: var(--md-admonition-icon--admonish-quote);
- mask-repeat: no-repeat;
- -webkit-mask-repeat: no-repeat;
- mask-size: contain;
- -webkit-mask-repeat: no-repeat;
-}
-
-.navy :is(.admonition) {
- background-color: var(--sidebar-bg);
-}
-
-.ayu :is(.admonition),
-.coal :is(.admonition) {
- background-color: var(--theme-hover);
-}
-
-.rust :is(.admonition) {
- background-color: var(--sidebar-bg);
- color: var(--sidebar-fg);
-}
-.rust .admonition-anchor-link:link, .rust .admonition-anchor-link:visited {
- color: var(--sidebar-fg);
-}
diff --git a/documentation/operators/src/SUMMARY.md b/documentation/operators/src/SUMMARY.md
index 9ae97e8296..54eda7834d 100644
--- a/documentation/operators/src/SUMMARY.md
+++ b/documentation/operators/src/SUMMARY.md
@@ -35,8 +35,8 @@
# Troubleshooting
-- [VPS Setup](troubleshooting/vps-setup.md)
-- [Nym Node](troubleshooting/nym-node.md)
+- [VPS Setup](troubleshooting/vps-isp.md)
+- [Nym Node](troubleshooting/nodes.md)
- [Validators](troubleshooting/validators.md)
# Token Economics
@@ -66,7 +66,7 @@
- [Why archive?](archive/archive.md)
- [Mixnet Nodes Setup](archive/nodes/setup-guides.md)
- - [Preliminary Steps](archive/nodes/preliminary-steps.md)
+ - [Preliminary Steps](archive/nodes/initial-steps.md)
- [Mix Node](archive/nodes/mix-node-setup.md)
- [Gateway](archive/nodes/gateway-setup.md)
- [Network Requester](archive/nodes/network-requester-setup.md)
diff --git a/documentation/operators/src/archive/nodes/gateway-setup.md b/documentation/operators/src/archive/nodes/gateway-setup.md
index 6a363e1818..c48bc6608a 100644
--- a/documentation/operators/src/archive/nodes/gateway-setup.md
+++ b/documentation/operators/src/archive/nodes/gateway-setup.md
@@ -14,13 +14,12 @@ As a result of [Project Smoosh](../faq/smoosh-faq.md), the current version of `n
> Any syntax in `<>` brackets is a user's unique variable. Exchange with a corresponding name without the `<>` brackets.
## Current version
-```
-
-```
+
+The last version before migration to [`nym-node`](../../nodes/nym-node.md) was `1.1.33`.
## Preliminary steps
-Make sure you do the preparation listed in the [preliminary steps page](preliminary-steps.md) before setting up your Gateway.
+Make sure you do the preparation listed in the [preliminary steps page](initial-steps.md) before setting up your Gateway.
## Gateway setup
@@ -39,12 +38,6 @@ You can check that your binaries are properly compiled with:
./nym-gateway --help
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
-
You can also check the various arguments required for individual commands with:
```
@@ -74,13 +67,6 @@ An operator can initialise the Exit Gateway functionality by adding Network Requ
./nym-gateway init --id --listening-address 0.0.0.0 --public-ips "$(curl -4 https://ifconfig.me)" --with-network-requester --with-exit-policy true
```
-If we follow the previous example with `` chosen `superexitgateway`, adding the `--with-network-requester` and `--with-exit-policy` flags, the outcome will be:
-
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
You can see that the printed information besides *identity* and *sphinx keys* also includes a long string called *address*. This is the address to be provided to your local [socks5 client](https://nymtech.net/docs/clients/socks5-client.html) as a `--provider` if you wish to connect to your own Exit Gateway.
@@ -96,11 +82,6 @@ See the options:
./nym-gateway setup-network-requester --help
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
To setup Exit Gateway functionality with our new [exit policy](https://nymtech.net/.wellknown/network-requester/exit-policy.txt) add a flag `--with-exit-policy true`.
@@ -115,12 +96,6 @@ Say we have a Gateway with `` as `new-gateway`, originally initialised and r
./nym-gateway setup-network-requester --enabled true --with-exit-policy true --id new-gateway
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-
-```
-~~~
In case there are any unexpected problems, you can also change it manually by editing the Gateway config file stored in `/home/user/.nym/gateways//config/config.toml` where the line under `[network_requester]` needs to be edited from `false` to `true`.
@@ -161,24 +136,12 @@ To check available configuration options use:
./nym-gateway init --help
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
-
The following command returns a Gateway on your current IP with the `` of `simple-gateway`:
```
./nym-gateway init --id simple-gateway --listening-address 0.0.0.0 --public-ips "$(curl -4 https://ifconfig.me)"
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
-
The `$(curl -4 https://ifconfig.me)` command above returns your IP automatically using an external service. Alternatively, you can enter your IP manually if you wish. If you do this, remember to enter your IP **without** any port information.
## Running your Gateway
diff --git a/documentation/operators/src/archive/nodes/preliminary-steps.md b/documentation/operators/src/archive/nodes/initial-steps.md
similarity index 100%
rename from documentation/operators/src/archive/nodes/preliminary-steps.md
rename to documentation/operators/src/archive/nodes/initial-steps.md
diff --git a/documentation/operators/src/archive/nodes/mix-node-setup.md b/documentation/operators/src/archive/nodes/mix-node-setup.md
index 43424fb9b1..ab21518d86 100644
--- a/documentation/operators/src/archive/nodes/mix-node-setup.md
+++ b/documentation/operators/src/archive/nodes/mix-node-setup.md
@@ -9,15 +9,14 @@
> Any syntax in `<>` brackets is a user's unique variable. Exchange with a corresponding name without the `<>` brackets.
## Current version
-```
-
-```
+
+The last version before migration to [`nym-node`](../../nodes/nym-node.md) was `1.1.35`.
The `nym-mix node` binary is currently one point version ahead of the rest of the platform binaries due to a patch applied between releases.
## Preliminary steps
-Make sure you do the preparation listed in the [preliminary steps page](preliminary-steps.md) before setting up your Mix Node.
+Make sure you do the preparation listed in the [preliminary steps page](initial-steps.md) before setting up your Mix Node.
## Mix node setup
@@ -39,12 +38,6 @@ You can check that your binaries are properly compiled with:
Which should return a list of all available commands.
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
-
You can also check the various arguments required for individual commands with:
```
@@ -61,24 +54,11 @@ To check available configuration options for initializing your node use:
./nym-mixnode init --help
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
-
Initialise your Mix Node with the following command, replacing the value of `--id` with the moniker you wish to give your Mix Node. Your `--host` must be publicly routable on the internet in order to mix packets, and can be either an Ipv4 or IPv6 address. The `$(curl -4 https://ifconfig.me)` command returns your IP automatically using an external service. If you enter your IP address manually, enter it **without** any port information.
```
./nym-mixnode init --id --host $(curl -4 https://ifconfig.me)
```
-If `` was `my-node`, the output will look like this:
-
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
> The `init` command will refuse to destroy existing Mix Node keys.
@@ -141,15 +121,6 @@ You can bond your Mix Node via the Desktop wallet.
./nym-mixnode sign --id --contract-msg
```
-It will look something like this:
-
-~~~admonish example collapsible=true title="Console output"
-```
-
-
-```
-~~~
-
* Copy the resulting signature:
```sh
@@ -191,13 +162,6 @@ Change directory by `cd ///` and run the following on th
./nym-mixnode sign --id --text
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-
-```
-~~~
-
Using `nym-cli`:
> `--mnemonic` is the mnemonic of the member wanting to be the head of family.
@@ -226,13 +190,6 @@ Change directory by `cd ///` and run the following on th
./nym-mixnode sign --id --text
```
-~~~admonish example collapsible=true title="Console output"
-```
-
-
-```
-~~~
-
Using `nym-cli`:
```
diff --git a/documentation/operators/src/archive/nodes/network-requester-setup.md b/documentation/operators/src/archive/nodes/network-requester-setup.md
index 035c49a862..66e830f41a 100644
--- a/documentation/operators/src/archive/nodes/network-requester-setup.md
+++ b/documentation/operators/src/archive/nodes/network-requester-setup.md
@@ -9,13 +9,12 @@
> Any syntax in `<>` brackets is a user's unique variable. Exchange with a corresponding name without the `<>` brackets.
## Current version
-```
-
-```
+
+The last version before migration to [`nym-node`](../../nodes/nym-node.md) was `1.1.33`.
## Preliminary steps
-Make sure you do the preparation listed in the [preliminary steps page](preliminary-steps.md) before setting up your Network Requester.
+Make sure you do the preparation listed in the [preliminary steps page](initial-steps.md) before setting up your Network Requester.
## Network Requester Whitelist
@@ -127,12 +126,6 @@ cd target/release
The `./nym-network-requester --help ` command can be used to show a list of available parameters.
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
-
You can check the required parameters for available commands by running:
```
@@ -149,15 +142,6 @@ The Network Requester needs to be initialized before it can be run. This is requ
./nym-network-requester init --id
```
-In the following we used `example`.
-
-~~~admonish example collapsible=true title="Console output"
-```
-
-```
-~~~
-
-
Now that we have initialized our network-requester, we can start it with the following command:
```
diff --git a/documentation/operators/src/faq/mixnodes-faq.md b/documentation/operators/src/faq/mixnodes-faq.md
deleted file mode 100644
index dc43cb4ffc..0000000000
--- a/documentation/operators/src/faq/mixnodes-faq.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# Frequently Asked Questions
-
-## Nym Mixnet
-
-To see different stats about Nym Mixnet live, we recommend you to visit [status.notrustverify.ch](https://status.notrustverify.ch/d/CW3L7dVVk/nym-mixnet?orgId=1) built by [No Trust Verify](https://notrustverify.ch/) crew, one of the squads within Nym core community.
-
-
-
-
-### Is there an explorer for Nym Mixnet?
-
-Yes, there are several places, some are built by Nym core community:
-
-* [Nym Explorer](https://explorer.nymtech.net/)
-* [Guru Explorer](https://mixnet.explorers.guru/)
-* [ExploreNYM](https://explorenym.net/)
-
-### What determines the rewards when running a Mix Node?
-
-The stake required for a Mix Node to achieve maximum rewards is called Mix Node saturation point. This is calculated from the staking supply (all circulating supply + part of unlocked tokens). The target level of staking is to have 40% of the staking supply locked in Mix Nodes.
-
-The node stake saturation point, which we denote by Nsat, is given by the stake supply, target level of staking divided between the rewarded nodes.
-
-This design ensures the nodes aim to have a same size of stake (reputation) which can be done by delegation staking, as well as it secures a whale prevention and decentralization of staking, as any higher level of delegated $NYM than Nsat per node results in worsening reward ratio. On the contrary, the more Mix Nodes are active, the lower is Nsat. The equilibrium is reached when the staked tokens are delegated equally across the active Mix nodes and that's our basis for this incentive system.
-
-
-
-
-The rewarded nodes are the nodes which will receive some rewards by the end of the given epoch. These can be separated further separated into:
-
-1. Active: Top *N* nodes of the rewarded set (currently all of them but this can change), these are nodes which are used by the clients and mix packets.
-
-2. Standby: Bottom *N* nodes of the rewarded set, they don't mix data from the clients but are used for testing. Their reward is smaller.
-
-
-For more detailed calculation, read our blog post [Nym Token Economics update](https://blog.nymtech.net/nym-token-economics-update-fedff0ed5267). More info on staking can be found [here](https://blog.nymtech.net/staking-in-nym-introducing-mainnet-mixmining-f9bb1cbc7c36). And [here](https://blog.nymtech.net/want-to-stake-in-nym-here-is-how-to-choose-a-mix-node-to-delegate-nym-to-c3b862add165) is more info on how to choose a Mix Node for delegation. And finally an [update](https://blog.nymtech.net/quarterly-token-economic-parameter-update-b2862948710f) on token economics from July 2023.
-
-
-
-*More graphs and stats at [stats.notrustverify.ch](https://status.notrustverify.ch/d/CW3L7dVVk/nym-mixnet?orgId=1&from=1703074861988&to=1705666862004).*
-
-### Which VPS providers would you recommend?
-
-Consider in which jurisdiction you reside and where do you want to run a Mix Node. Do you want to pay by crypto or not and what are the other important particularities for your case? We always recommend operators to try to choose smaller and decentralised VPS providers over the most known ones controlling a majority of the internet. We receive some good feedback on these: Linode, Ghandi, Flokinet and Exoscale. Do your own research and share with the community.
-
-### Why is a mix node setup on a self-hosted machine so tricky?
-
-We don't recommend this setup because it's really difficult to get a static IP and route IPv6 traffic.
-
-### What's the Sphinx packet size?
-
-The sizes are shown in the configs [here](https://github.com/nymtech/nym/blob/1ba6444e722e7757f1175a296bed6e31e25b8db8/common/nymsphinx/params/src/packet_sizes.rs#L12) (default is the one clients use, the others are for research purposes, not to be used in production as this would fragment the anonymity set). More info can be found [here](https://github.com/nymtech/nym/blob/4844ac953a12b29fa27688609ec193f1d560c996/common/nymsphinx/anonymous-replies/src/reply_surb.rs#L80).
-
-### Why a Mix Node and a Gateway cannot be bonded with the same wallet?
-
-Because of the way the smart contract works we keep it one-node one-address at the moment.
-
-### Which nodes are the most needed to be setup to strengthen Nym infrastructure and which ones bring rewards?
-
-Ath this point the most crutial component needed are [Exit Gateways](../legal/exit-gateway.md).
-
-### Are Mix Nodes whitelisted?
-
-Nope, anyone can run a Mix Node. Purely reliant on the node's reputation (self stake + delegations) & routing score.
-
-## Validators and tokens
-
-### What's the difference between NYM and uNYM?
-
-1 NYM = 1 000 000 uNYM
-
-
-
-### Why some Nyx blockchain operations take one hour and others are instant?
-
-This is based on the definition in [Nym's CosmWasm](https://github.com/nymtech/nym/tree/develop/common/cosmwasm-smart-contracts) smart contracts code.
-
-Whatever is defined as [a pending epoch event](https://github.com/nymtech/nym/blob/b07627d57e075b6de35b4b1a84927578c3172811/common/cosmwasm-smart-contracts/mixnet-contract/src/pending_events.rs#L35-L103) will get resolved at the end of the current epoch.
-
-And whatever is defined as [a pending interval event](https://github.com/nymtech/nym/blob/b07627d57e075b6de35b4b1a84927578c3172811/common/cosmwasm-smart-contracts/mixnet-contract/src/pending_events.rs#L145-L172) will get resolved at the end of the current interval.
-
-### Can I run a validator?
-
-We are currently working towards building up a closed set of reputable validators. You can ask us for coins to get in, but please don't be offended if we say no - validators are part of our system's core security and we are starting out with people we already know or who have a solid reputation.
-
-### Why is validator set entry whitelisted?
-
-We understand that the early days of the Nyx blockchain will face possible vulnerabilities in terms of size - easy to disrupt or halt the chain if a malicious party entered with a large portion of stake. Besides that, there are some legal issues we need to address before we can distribute the validator set in a fully permissions fashion.
-
-### Why does Nym do airdrops?
-
-It is part of ensuring decentralisation - we need to avoid a handful of people having too much control over the token and market. Of course ideally people will stake the tokens and contribute to the project at this stage. We run surveys to better understand what people are doing with their tokens and what usability issues there are for staking. Any feedback is appreciated as it helps us improve all aspects of using the token and participating in the ecosystem.
diff --git a/documentation/operators/src/faq/smoosh-faq.md b/documentation/operators/src/faq/smoosh-faq.md
deleted file mode 100644
index 08ca34169c..0000000000
--- a/documentation/operators/src/faq/smoosh-faq.md
+++ /dev/null
@@ -1,114 +0,0 @@
-# Project Smoosh - FAQ
-
-> We aim on purpose to make minimal changes to reward scheme and software. We're just 'smooshing' together stuff we already debugged and know works.
-> -- Harry Halpin, Nym CEO
-
-
-
-This page refer to the changes which are planned to take place over Q3 and Q4 2023. As this is a transition period in the beginning (Q3 2023) the [Mix Nodes FAQ page](nym-nodes-faq.md) holds more answers to the current setup as project Smoosh refers to the eventual setup. As project Smoosh gets progressively implemented the answers on this page will become to be more relevant to the current state and eventually this FAQ page will be merged with the still relevant parts of the main Mix Nodes FAQ page.
-
-If any questions are not answered or it's not clear for you in which stage project Smoosh is right now, please reach out in Node Operators [Matrix room](https://matrix.to/#/#operators:nymtech.chat).
-
-## Overview
-
-### What is project Smoosh?
-
-As we shared in our blog post article [*What does it take to build the wolds most powerful VPN*](https://blog.nymtech.net/what-does-it-take-to-build-the-worlds-most-powerful-vpn-d351a76ec4e6), project Smoosh is:
-
-> A nick-name by CTO Dave Hrycyszyn and Chief Scientist Claudia Diaz for the work they are currently doing to “smoosh” Nym Nodes so that the same operator can serve alternately as Mix Node, Gateway or VPN node. This requires careful calibration of the Nym token economics, for example, only nodes with the highest reputation for good quality service will be in the VPN set and have the chance to earn higher rewards.
-> By simplifying the components, adding VPN features and supporting new node operators, the aim is to widen the geographical coverage of nodes and have significant redundancy, meaning plenty of operators to be able to meet demand. This requires strong token economic incentives as well as training and support for new node operators.
-
-## Technical Questions
-
-### What are the changes?
-
-Project Smoosh will have four steps, please follow the table below to track the dynamic progress:
-
-| **Step** | **Status** |
-| :--- | :--- |
-| **1.** Combine the `nym-gateway` and `nym-network-requester` into one binary | ✅ done |
-| **2.** Create [Exit Gateway](../legal/exit-gateway.md): Take the `nym-gateway` binary including `nym-network-requester` combined in \#1 and switch from [`allowed.list`](https://nymtech.net/.wellknown/network-requester/standard-allowed-list.txt) to a new [exit policy](https://nymtech.net/.wellknown/network-requester/exit-policy.txt) | ✅ done |
-| **3.** Combine all the nodes in the Nym Mixnet into one binary, that is `nym-mixnode`, `nym-gateway` (entry and exit) and `nym-network-requester`. | ✅ done |
-| **4.** Adjust reward scheme to incentivise and reward Exit Gateways as a part of `nym-node` binary, implementing [zkNym credentials](https://youtu.be/nLmdsZ1BsQg?t=1717). | ✅ done |
-
-These steps will be staggered over time - period of several months, and will be implemented one by one with enough time to take in feedback and fix bugs in between.
-Generally, the software will be the same, just instead of multiple binaries, there will be one Nym Node (`nym-node`) binary. Delegations will remain on as they are now, per our token economics (staking, saturation etc)
-
-### What does it mean for Nym nodes operators?
-
-We are exploring two potential methods for implementing binary functionality in practice and will provide information in advance. The options are:
-
-1. Make a selection button (command/argument/flag) for operators to choose whether they want their node to provide all or just some of the functions nodes have in the Nym Mixnet. Nodes functioning as Exit Gateways (in that epoch) will then have bigger rewards due to their larger risk exposure and overhead work with the setup.
-
-2. All nodes will be required to have the Exit Gateway functionality. All nodes are rewarded the same as now, and the difference is that a node sometimes (some epochs) may be performing as Exit Gateway sometimes as Mix node or Entry Gateway adjusted according the network demand by an algorithm.
-
-### Where can I read more about the Exit Gateway setup?
-
-We created an [entire page](../legal/exit-gateway.md) about the technical and legal questions around Exit Gateway.
-
-### What is the change from allow list to deny list?
-
-The operators running Gateways would have to “open” their nodes to a wider range of online services, in a similar fashion to Tor exit relays. The main change will be to expand the original short [`allowed.list`](https://nymtech.net/.wellknown/network-requester/standard-allowed-list.txt) to a more permissive setup. An [exit policy](https://nymtech.net/.wellknown/network-requester/exit-policy.txt) will constrain the hosts that the users of the Nym VPN and Mixnet can connect to. This will be done in an effort to protect the operators, as Gateways will act both as SOCKS5 Network Requesters, and exit nodes for IP traffic from Nym VPN and Mixnet clients.
-
-### How will the Exit policy be implemented?
-
-Follow the dynamic progress of exit policy implementation on Gateways below:
-
-| **Step** | **Status** |
-| :--- | :--- |
-| **1.** By default the [exit policy](https://nymtech.net/.wellknown/network-requester/exit-policy.txt) filtering is disabled and the [`allowed.list`](https://nymtech.net/.wellknown/network-requester/standard-allowed-list.txt) filtering is going to continue be used. This is to prevent operators getting surprised by upgrading their Gateways (or Network Requesters) and suddenly be widely open to the internet. To enable the new exit policy, operators must use `--with-exit-policy` flag or modify the `config.toml` file. | ✅ done |
-| **2.** The exit policy is part of the Gateway setup by default. To disable this exit policy, operators must use `--disable-exit-policy` flag. | ✅ done |
-| **3.** The exit policy is the only option. The `allowed.list` is completely removed. | ✅ done |
-
-Keep in mind the table above only relates to changes happening on Gateways. For the Project Smoosh progress refer to the [table above](./smoosh-faq.md#what-are-the-changes). Whether Exit Gateway functionality will be optional or mandatory part of every active Nym Node depends on the chosen [design](./smoosh-faq.md#what-does-it-mean-for-nym-nodes-operators).
-
-### Can I run a Mix Node only?
-
-It depends which [design](./smoosh-faq.md#what-does-it-mean-for-nym-nodes-operators) will ultimately be used. In case of the first - yes. In case of the second option, all the nodes will be setup with Exit Gateway functionality turned on.
-
-## Token Economics & Rewards
-
-```admonish info
-For any specifics on Nym token economics and Nym Mixnet reward system, please read the [Nym token economics paper](https://nymtech.net/nym-cryptoecon-paper.pdf).
-```
-
-### What are the incentives for the node operator?
-
-In the original setup there were no incentives to run a `nym-network-requester` binary. After the transition all the users will buy multiple tickets of zkNyms credentials and use those as [anonymous e-cash](https://arxiv.org/abs/2303.08221) to pay for their data traffic ([`Nym API`](https://github.com/nymtech/nym/tree/master/nym-api) will do the do cryptographical checks to prevent double-spending). All collected fees get distributed to all active nodes proportionally to their work by the end of each epoch.
-
-### How does this change the token economics?
-
-The token economics will stay the same as they are, same goes for the reward algorithm.
-
-### How are the rewards distributed?
-
-This depends on [design](./smoosh-faq.md#what-does-it-mean-for-nym-nodes-operators) chosen. In case of \#1, it will look like this:
-
-As each operator can choose what roles their nodes provide, the nodes which work as open Gateways will have higher rewards because they are the most important to keep up and stable. Besides that the operators of Gateways may be exposed to more complication and possible legal risks.
-
-The nodes which are initialized to run as Mix Nodes and Gateways will be chosen to be on top of the active set before the ones working only as a Mix Node.
-
-I case we go with \#2, all nodes active in the epoch will be rewarded proportionally according their work.
-
-In either way, Nym will share all the specifics beforehand.
-
-### How will be the staking and inflation after project Smoosh?
-
-Nym will run tests to count how much payment comes from the users of the Mixnet and if that covers the reward payments. If not, we may need to keep inflation on to secure incentives for high quality Gateways in the early stage of the transition.
-
-### When project smooth will be launched, it would be the mixmining pool that will pay for the Gateway rewards based on amount of traffic routed ?
-
-Yes, the same pool. Nym's aim is to do minimal modifications. The only real modification on the smart contract side will be to get into top X of 'active set' operators will need to have open Gateway function enabled.
-
-### What does this mean for the current delegators?
-
-From an operator standpoint, it shall just be a standard Nym upgrade, a new option to run the Gateway software on your node. Delegators should not have to re-delegate.
-
-## Legal Questions
-
-### Are there any legal concerns for the operators?
-
-So far the general line is that running a Gateway is not illegal (unless you are in Iran, China, and a few other places) and due to encryption/mixing less risky than running a normal VPN node. For Mix Nodes, it's very safe as they have "no idea" what packets they are mixing.
-
-There are several legal questions and analysis to be made for different jurisdictions. To be able to share resources and findings between the operators themselves we created a [Community Legal Forum](../legal/exit-gateway.md).
-
diff --git a/documentation/operators/src/introduction.md b/documentation/operators/src/introduction.md
index c4829009bb..fe4cd0664c 100644
--- a/documentation/operators/src/introduction.md
+++ b/documentation/operators/src/introduction.md
@@ -35,7 +35,7 @@ If you want to dive deeper into Nym's architecture, clients, nodes, and SDK exam
* [FAQ](faq/nym-nodes-faq.md)
* [Maintenance](nodes/maintenance.md)
-* [Troubleshooting](troubleshooting/nym-node.md)
+* [Troubleshooting](troubleshooting/nodes.md)
**Community Legal Forum**
diff --git a/documentation/operators/src/nodes/bonding.md b/documentation/operators/src/nodes/bonding.md
index cb20f7b3f0..25cb98a03a 100644
--- a/documentation/operators/src/nodes/bonding.md
+++ b/documentation/operators/src/nodes/bonding.md
@@ -36,16 +36,7 @@ You can bond your `nym-node` via the Desktop wallet.
```
./nym-node sign --contract-msg
```
-
-
-```
-~~~
--->
4. Copy the resulting signature string and paste it into the wallet nodal, press `Next` and confirm the transaction:
```sh
diff --git a/documentation/operators/src/nodes/configuration.md b/documentation/operators/src/nodes/configuration.md
index 814028dd46..e1ad6a964f 100644
--- a/documentation/operators/src/nodes/configuration.md
+++ b/documentation/operators/src/nodes/configuration.md
@@ -293,7 +293,7 @@ ip addr show nymtun0
sudo ./network_tunnel_manager.sh joke_through_the_mixnet
```
-Make sure that you get the validation of IPv4 and IPv6 connectivity. If there are still any problems, please refer to [troubleshooting section](../troubleshooting/vps-setup.md#incorrect-gateway-network-check)
+Make sure that you get the validation of IPv4 and IPv6 connectivity. If there are still any problems, please refer to [troubleshooting section](../troubleshooting/vps-isp.md#incorrect-gateway-network-check)
## Next Steps
diff --git a/documentation/operators/src/nodes/nym-node.md b/documentation/operators/src/nodes/nym-node.md
index 15df4c9562..72c20d2767 100644
--- a/documentation/operators/src/nodes/nym-node.md
+++ b/documentation/operators/src/nodes/nym-node.md
@@ -1,7 +1,7 @@
# Nym Node
```admonish note
-If you are a `nym-mixnode` or `nym-gateway` operator and you are not familiar with the binary changes called *Project Smoosh*, you can read the archived [Smoosh FAQ](../archive/smoosh-faq.md) page.
+If you are a `nym-mixnode` or `nym-gateway` operator and you are not familiar with the binary changes called *Project Smoosh*, you can read the archived [Smoosh FAQ](../archive/faq/smoosh-faq.md) page.
```
NYM NODE is a tool for running a node within the Nym network. Nym Nodes containing functionality such as `mixnode`, `entry-gateway` and `exit-gateway` are fundamental components of Nym Mixnet architecture. Nym Nodes are ran by decentralised node operators.
@@ -65,13 +65,13 @@ operation fetch_ipv6_address_nym_tun completed successfully.
```sh
sudo ./network_tunnel_manager.sh apply_iptables_rules
```
- - and check them again like in point 3.
+ - and check them again like in point 4.
7. (If you didn't have a `nym-node` service yet) Create `systemd` [automation and configuration file](configuration.md#systemd), reload, enable
8. Start `nym-node` service:
```sh
-sudo service start nym-node && journalctl -u nym-node -f -n 100
+sudo service nym-node start && journalctl -u nym-node -f -n 100
```
9. After a minute of running properly, check `nymtun0`:
@@ -98,4 +98,4 @@ ip addr show nymtun0
sudo ./network_tunnel_manager.sh joke_through_the_mixnet
```
-Make sure that you get the validation of IPv4 and IPv6 connectivity, in case of problems, check [troubleshooting page](../troubleshooting/vps-setup.md#incorrect-gateway-network-check). After proceed to [bonding](bonding.md).
+Make sure that you get the validation of IPv4 and IPv6 connectivity, in case of problems, check [troubleshooting page](../troubleshooting/vps-isp.md#incorrect-gateway-network-check). After proceed to [bonding](bonding.md).
diff --git a/documentation/operators/src/nodes/setup.md b/documentation/operators/src/nodes/setup.md
index 0cb1b34881..460e7e704f 100644
--- a/documentation/operators/src/nodes/setup.md
+++ b/documentation/operators/src/nodes/setup.md
@@ -64,6 +64,31 @@ Run `./nym-node --help` to see all available commands:
```
~~~
+
+
To list all available flags for each command, run `./nym-node --help` for example `./nym-node run --help`:
~~~admonish example collapsible=true title="`./nym-node run --help` output:"
@@ -72,6 +97,83 @@ To list all available flags for each command, run `./nym-node --help`
```
~~~
+
+
The Wireguard flags currently have limited functionality, with `--wireguard-enabled` being the most relevant, enabling or disabling wireguard functionality.
#### Flags Summary
@@ -173,6 +275,8 @@ Migration is a must for all deprecated nodes (`nym-mixnode`, `nym-gateway`). For
To migrate a `nym-mixnode` or a `nym-gateway` to `nym-node` is fairly simple, use the `migrate` command with `--config-file` flag pointing to the original `config.toml` file, with a conditional argument defining which type of node this configuration belongs to. Examples are below.
+Make sure to use `--deny-init` flag to prevent initialisation of a new node.
+
#### Mode: `mixnode`
```sh
# move relevant infor from config.toml
diff --git a/documentation/operators/src/testing/node-setup.md b/documentation/operators/src/testing/node-setup.md
index 23bb4fe2d5..3885149511 100644
--- a/documentation/operators/src/testing/node-setup.md
+++ b/documentation/operators/src/testing/node-setup.md
@@ -68,5 +68,5 @@ sudo ufw allow 9000, 9001
## Troubleshooting
-If you come to any errors during the setup visit [troubleshooting page](../troubleshooting/nym-node.md#gateways-mode). In case your issue isn't documented ask in our Element [Node Operators channel](https://matrix.to/#/#operators:nymtech.chat) or raise an [issue](https://github.com/nymtech/nym/issues) on Github.
+If you come to any errors during the setup visit [troubleshooting page](../troubleshooting/nodes.md#gateways-mode). In case your issue isn't documented ask in our Element [Node Operators channel](https://matrix.to/#/#operators:nymtech.chat) or raise an [issue](https://github.com/nymtech/nym/issues) on Github.
diff --git a/documentation/operators/src/troubleshooting/nym-node.md b/documentation/operators/src/troubleshooting/nodes.md
similarity index 100%
rename from documentation/operators/src/troubleshooting/nym-node.md
rename to documentation/operators/src/troubleshooting/nodes.md
diff --git a/documentation/operators/src/troubleshooting/vps-setup.md b/documentation/operators/src/troubleshooting/vps-isp.md
similarity index 100%
rename from documentation/operators/src/troubleshooting/vps-setup.md
rename to documentation/operators/src/troubleshooting/vps-isp.md