From 9f3309df1eafcc959678ee7246802098806d826c Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Mon, 20 Jun 2022 13:36:35 +1000 Subject: [PATCH 01/15] repositories got fouled up in merges because not detached --- libsodium | 2 +- mpir | 2 +- wxWidgets | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libsodium b/libsodium index f333ea1..012e892 160000 --- a/libsodium +++ b/libsodium @@ -1 +1 @@ -Subproject commit f333ea1beb9a61dcf61449faf7854f0bb676fe82 +Subproject commit 012e892841ed6edc521f88a23b55863c7afe4622 diff --git a/mpir b/mpir index 33be900..20795fa 160000 --- a/mpir +++ b/mpir @@ -1 +1 @@ -Subproject commit 33be9007f95b85230da2330ef3ed525896370cc2 +Subproject commit 20795fa90044ea9adfc5a2e28c9a60d8e2eebcbd diff --git a/wxWidgets b/wxWidgets index ddcb047..270d386 160000 --- a/wxWidgets +++ b/wxWidgets @@ -1 +1 @@ -Subproject commit ddcb0472347dd08b76a34cc25db5ec0cc29f9abb +Subproject commit 270d38601df59429710dda66832d8d91e3701296 From 034983be0b3da468fbdfc82c3f12672a15cc9375 Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Tue, 21 Jun 2022 14:37:48 +1000 Subject: [PATCH 02/15] cleaned up whitespace --- .gitconfig | 1 - docs/libraries.md | 8 ++++---- docs/libraries/review_of_crypto_libraries.md | 2 +- docs/set_upstream.sh | 4 ++-- docs/social_networking.md | 20 +++++++++++++++++--- mpir_and_base58.cpp | 4 ++-- slash6.cpp | 16 ++++++++-------- 7 files changed, 34 insertions(+), 21 deletions(-) diff --git a/.gitconfig b/.gitconfig index 9b1e6c5..2763be9 100644 --- a/.gitconfig +++ b/.gitconfig @@ -22,4 +22,3 @@ recurse = true [diff] submodule = log - diff --git a/docs/libraries.md b/docs/libraries.md index ab14d36..7e93117 100644 --- a/docs/libraries.md +++ b/docs/libraries.md @@ -140,7 +140,7 @@ primary fork name, should be temporary and local., not pushed to the project repository, But when you are modifying the submodules in a project as a single project, making related changes in the module and submodule, the shared names that are common to all developers belong in -the primary project module,and when you have done with a submodule, +the primary project module,and when you have done with a submodule, ```bash git switch --detach @@ -202,7 +202,7 @@ various commits you made while working on it temporary and local names with `switch -c yet-another-idea` All of which, of course, presupposes you have already set unit tests, -upstream, origin, and your tracking branch appropriately. +upstream, origin, and your tracking branch appropriately. Even if your local modifications are nameless in your local submodule repository, on your remote submodule repository they need to have a name @@ -213,7 +213,7 @@ names and commits in your superproject that contains this submodules point to. You want `.gitmodules` in your local image of the repository to -reflect the location and fork of your new remote repository, with +reflect the location and fork of your new remote repository, with your remote as its `origin` and their remote as its `upstream`. You need an enormous pile of source code, the work of many people over @@ -526,7 +526,7 @@ such cases. ## Choco -Choco, Chocolatey, is the Windows Package manager system. Does not use `*.msi` as its packaging system. A chocolatey package consists of an `*.nuget`, `chocolateyInstall.ps1`, `chocolateyUninstall.ps1`, and `chocolateyBeforeModify.ps1` (the latter script is run before upgrade or uninstall, and is to reverse stuff done by is accompanying +Choco, Chocolatey, is the Windows Package manager system. Does not use `*.msi` as its packaging system. A chocolatey package consists of an `*.nuget`, `chocolateyInstall.ps1`, `chocolateyUninstall.ps1`, and `chocolateyBeforeModify.ps1` (the latter script is run before upgrade or uninstall, and is to reverse stuff done by is accompanying `chocolateyInstall.ps1 `) Interaction with stuff installed by `*.msi` is apt to be bad. diff --git a/docs/libraries/review_of_crypto_libraries.md b/docs/libraries/review_of_crypto_libraries.md index b865adc..f620cf8 100644 --- a/docs/libraries/review_of_crypto_libraries.md +++ b/docs/libraries/review_of_crypto_libraries.md @@ -109,7 +109,7 @@ mangle together then ends gracefully, and the next stream and the next concurrent process starts when there is something to do. While a stream lives, both ends maintain state, albeit in a request reply, the state lives only briefly. -1. A message. +1. A message. Representing all this as a single kind of port, and packets going between ports of a single kind, inherently leads to the mess that we diff --git a/docs/set_upstream.sh b/docs/set_upstream.sh index 50d1750..612449c 100644 --- a/docs/set_upstream.sh +++ b/docs/set_upstream.sh @@ -10,11 +10,11 @@ git remote set-url origin git@cpal.pw:~/libsodium.git git remote set-url upstream https://github.com/jedisct1/libsodium.git cd .. cd mpir -git remote set-url origin git@cpal.pw:~/mpir.git +git remote set-url origin git@cpal.pw:~/mpir.git git remote set-url upstream https://github.com/BrianGladman/mpir.git cd .. cd wxWidgets -git remote set-url origin git@cpal.pw:~/wxWidgets.git +git remote set-url origin git@cpal.pw:~/wxWidgets.git git remote set-url upstream https://github.com/wxWidgets/wxWidgets.git cd .. cd wxWidgets/3rdparty/catch diff --git a/docs/social_networking.md b/docs/social_networking.md index cae428f..477730c 100644 --- a/docs/social_networking.md +++ b/docs/social_networking.md @@ -269,10 +269,24 @@ For this to work, the underlying structure needs to be something based on the same principles as Git and git repositories, except that Git relies on SSL and the Certificate Authority system to locate a repository, which dangerous centralization would fail under the inevitable attack. It needs to - have instead for its repository name system a distributed name system, but - a Kamelia distributed hash table will come under hostile attack. + have instead for its repository name system a distributed hash table name + system, but a Kamelia distributed hash table will come under hostil + attack. - So rather than a system relying on nearest neighbour by hash distance, nearest neighbour by social distance. + So rather than a system relying on nearest neighbour by hash distance, + nearest neighbour by social distance. + + Social distance is costly and complex to calculate. If there are more than + thirty or a hundred entities, need to use dimensional reduction. But we do + not need to do it very often. + + Social distance, if calculated in a shill and Sybil resistant way, lacks the + nice mathematical properties of the Kamelia distance metric, so does not + necessarily guarantee you will find what you are looking for. Or if it does, going to be a lot more complicated to prove. But it seems likely that most + of the time, it will perform well, because most of the time you will be + looking for someone close. We will have to find out by experiment. + + The reason that Kamelia network cannot work in the face of enemy action, is that the shills who want to prevent something from being found create a hundred entries with a hash close to their target by Kamelia distance, and then when your search brings you close to target, it brings you to a shill, who misdirects you. Using social network distance resists this attack. The messages of the people you are following are likely to be in a relatively small number of repositories, even if the total number of diff --git a/mpir_and_base58.cpp b/mpir_and_base58.cpp index 57c4846..47d33dd 100644 --- a/mpir_and_base58.cpp +++ b/mpir_and_base58.cpp @@ -23,13 +23,13 @@ namespace ro { assert(index[pu] == 0); index[pu] = *q++; } - assert(*(p - 1) == '\0' && *q == '\0'); + assert(*(p - 1) == '\0' && *q == '\0'); /* when an instance of this class is declared constexpr, an assert does not trigger a run time error, because expression evaluated at compile time. Instead the compiler reports that the expression did not evaluate to a constant, - + The error is confusing, because the error points to the declaration where the initialization was invoked, instead of pointing to the assert. diff --git a/slash6.cpp b/slash6.cpp index 8598b45..b48370c 100644 --- a/slash6.cpp +++ b/slash6.cpp @@ -30,10 +30,10 @@ static constexpr uint8_t index2base64[]{ // But on reflection, useless, since human typed stuff like this should use Bitcoin's base 58 encoding // So going to switch to regular base64, despite the unreasonably immense amount of work I put into it. -// Unfortunately, Wireguard, with which I am going to need to interoperate, uses RFC4648, whose -// algorithm is fundamentally different - no special treatment for I, O, o, and l, and uses = +// Unfortunately, Wireguard, with which I am going to need to interoperate, uses RFC4648, whose +// algorithm is fundamentally different - no special treatment for I, O, o, and l, and uses = // to handle the case where you have boundary problems between eight and six bit groups. -// They force everything to four character groups, using an = sign to indicate that the +// They force everything to four character groups, using an = sign to indicate that the // bytes being represented stop before a multiple of three. https://www.base64encode.org @@ -57,11 +57,11 @@ static_assert(index2base64[63] == '_', "surprise numeral at 63"); // Compile time execution is C++ is a pain, because expressions are apt to unpredictably lose // their constexpr character for reasons that are far from clear. -// +// // You can declare anything reasonable to be constexpr, and the compiler will not issue an -// error message until the code that attempts to use what you have declared constexpr is +// error message until the code that attempts to use what you have declared constexpr is // invoked from somewhere else "expression does not evaluate to constant" -// +// // an assert in an expression evaluated at compile time does not trigger a run time error, // Instead the compiler reports that the expression did not evaluate to a constant, // @@ -96,8 +96,8 @@ public: static constexpr charindex ascii2six_ar(index2base64); -// -// +// +// // You really have to write compile time code in templates as a language, which is the totally // obscure and hard to use language apt to generate remarkably voluminous error messages // will little obvious connection to the actual problem, and surprising result that are ver From 53ec4eba6c714d6ee0fafba20842fded891c8d7f Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Fri, 1 Jul 2022 09:18:44 +1000 Subject: [PATCH 03/15] still struggling with the problem of making public ids public --- .gitattributes | 2 + .gitignore | 13 ++- ...cient_Error-Propagating_Block_Chaining.pdf | Bin 222311 -> 0 bytes docs/mkdocs.sh | 8 +- docs/recognizing_categories_and_instances.md | 47 +++++++++-- docs/set_up_build_environments.md | 10 ++- docs/set_upstream.sh | 24 +++--- docs/social_networking.md | 78 ++++++++++++------ winConfig.sh | 63 ++------------ 9 files changed, 134 insertions(+), 111 deletions(-) delete mode 100644 docs/Efficient_Error-Propagating_Block_Chaining.pdf diff --git a/.gitattributes b/.gitattributes index 9e9a0f8..f70d425 100644 --- a/.gitattributes +++ b/.gitattributes @@ -35,6 +35,8 @@ Makefile text eol=lf encoding=utf-8 *.vcxproj text eol=crlf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 *.vcxproj.filters text eol=crlf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 *.vcxproj.user text eol=crlf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 +*.props text eol=crlf encoding=utf-8 whitespace=trailing-space,space-before-tab,tabwidth=4 + # Force binary files to be binary diff --git a/.gitignore b/.gitignore index 52149e2..4f016fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,16 @@ sqlite3/sqlite-doc/ -*.bat + +## ignore Microsof Word stuff, as no one should use it in the project +## pandoc can translate it to markdown, the universal format. +*.doc +*.DOC +*.docx +*.DOCX +*.dot +*.DOT +*.rtf +*.RTF + ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. *.bak diff --git a/docs/Efficient_Error-Propagating_Block_Chaining.pdf b/docs/Efficient_Error-Propagating_Block_Chaining.pdf deleted file mode 100644 index 3c1cd866b74f60c02d51848625401d3d74956845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222311 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 + Social networking ... # the crisis of censorship @@ -270,35 +271,53 @@ the same principles as Git and git repositories, except that Git relies on SSL and the Certificate Authority system to locate a repository, which dangerous centralization would fail under the inevitable attack. It needs to have instead for its repository name system a distributed hash table name - system, but a Kamelia distributed hash table will come under hostil - attack. + system, but a Kademlia distributed hash table will come under hostile + attack. - So rather than a system relying on nearest neighbour by hash distance, + So rather than a distributed hash table structured by hash distance, nearest neighbour by social distance. - Social distance is costly and complex to calculate. If there are more than - thirty or a hundred entities, need to use dimensional reduction. But we do - not need to do it very often. + ### Replacing Kademlia - Social distance, if calculated in a shill and Sybil resistant way, lacks the - nice mathematical properties of the Kamelia distance metric, so does not - necessarily guarantee you will find what you are looking for. Or if it does, going to be a lot more complicated to prove. But it seems likely that most - of the time, it will perform well, because most of the time you will be - looking for someone close. We will have to find out by experiment. + [social distance metric]:recognizing_categories_and_instances.html#Kademlia +{target="_blank"} - The reason that Kamelia network cannot work in the face of enemy action, is that the shills who want to prevent something from being found create a hundred entries with a hash close to their target by Kamelia distance, and then when your search brings you close to target, it brings you to a shill, who misdirects you. Using social network distance resists this attack. -The messages of the people you are following are likely to be in a -relatively small number of repositories, even if the total number of -repositories out there is enormous and the number of hashes in each -repository is enormous, so this algorithm and data structure will scale, and -the responses to that thread that they have approved, by people you are not -following, will be commits in that repository, that, by pushing their latest -response to that thread to a public repository, they committed to that -repository. + I will describe the Kademlia distributed hash table algorithm not in the + way that it is normally described and defined, but in such a way that we + can easily replace its metric by [social distance metric], assuming that we can construct a suitable metric, which reflects what feeds a given host is following, and what feeds the hosts of which it knows the unstable network address of are following, and what stable network addresses it knows and the feeds they are following, a quantity over which a distance can be found that reflects how close a peer is to an unstable network address, or knows a peer that is likely to know a peer that is likely to know an unstable network address. -Each repository contains all the material the poster has approved, resulting -in considerable duplication, but not enormous duplication. +A distributed hash table works by each peer on the network maintaining a +large number of live and active connections to computers such that the +distribution of connections to computers distant by the distributed hash +table metric is approximately uniform by distance, which distance is for +Kademlia the $log_2$ of the exclusive-or between his hash and your hash. + + And when you want to connect to an arbitrary computer, you asked the + computers that are nearest in the space to the target for their connections + that are closest to the target. And then you connect to those, and ask the + same question again. + + In the course of this operation, you acquire more and more active + connections, which you purge from time to time to keep the total number + of connections reasonable, the distribution approximately uniform, the + connections preferentially to computers with long lived network addresses + and open ports, and connections that are distant from you distant from + each other. + + Social distance is costly and complex to calculate, and requires that + information on a public feed showing its social connections be widely + shared, which is a lot of information that everyone has to acquire and + store, and perform a heavy calculation on. If there are more than thirty + or a hundred entities, need to use dimensional reduction. But we do not + need to do it very often. + + The reason that the Kademlia distributed hash table cannot work in the + face of enemy action, is that the shills who want to prevent something + from being found create a hundred entries with a hash close to their target + by Kademlia distance, and then when your search brings you close to + target, it brings you to a shill, who misdirects you. Using social network + distance resists this attack. The messages of the people you are following are likely to be in a relatively small number of repositories, even if the total number of @@ -327,6 +346,17 @@ state of that tree, with the continually changing root of Bob’s Merkle-patrici tree signed by Bob using his secret key which is kept in a BIP39 style wallet. +When Dave replies to a text in Carol's feed, the Carol text and the reply by +default goes into his feed, and if it does there will be metadata in his feed +about his social network connection to Carol, which, if Bob is following +Dave's feed, can be used by Bob's client to navigate the distribute hash +table to Carol's feed. + +And if Carol approves Dave's reply, or is following Dave or has buddied +Dave, and Bob is following Carol, but not following Dave, then there will +be in metadata in Carol's feed that can be used by Bob's client to navigate +the distribute hash table to Carol's feed. + The metadata in the feed sharing reveals what network addresses are following a feed, but the keys are derived from user identity keys by a one way hash, so are not easily linked to who is posting in the feed. diff --git a/winConfig.sh b/winConfig.sh index fb77a4d..381fd8e 100644 --- a/winConfig.sh +++ b/winConfig.sh @@ -3,68 +3,15 @@ set -e set -x git submodule foreach --recursive 'git reset --hard' git submodule foreach --recursive 'git clean -xdf' -git submodule update --init --recursive --remote +git submodule foreach --recursive 'git switch rho-fork' +git submodule foreach --recursive 'git switch --detach' +git submodule update --init --recursive git config --local include.path ../.gitconfig set +e set +x -rm -r x64 set -e src=libsodium/libsodium.vcxproj dest=libsodium/libsodium.vcxproj wxwin=wxWidgets -if [[ "$OSTYPE" == "linux-gnu"* ]]; then - chmod 755 docs/mkdocs.sh - chmod 755 docs/check_html.sh - chmod 755 mpir/devel/regen - chmod 755 mpir/devel/setversion - chmod 755 mpir/tune/aligntest - chmod 755 mpir/devel/benchmpn - chmod 755 wxWidgets/build/tools/*.sh - chmod 755 wxWidgets/distrib/autopackage/makeautopackage - chmod 755 wxWidgets/docs/doxygen/*.sh - chmod 755 wxWidgets/interface/*.sh - chmod 755 wxWidgets/lib/*.sh - chmod 755 wxWidgets/misc/scripts/*.sh - chmod 755 wxWidgets/misc/scripts/check_unused_headers - chmod 755 wxWidgets/src/expat/*.sh - chmod 755 wxWidgets/src/*/contrib/oss-fuzz/*.sh - chmod 755 wxWidgets/tests/fuzz/*.sh - chmod 755 wxWidgets/utils/ifacecheck/*.sh -fi - -cat $src | sed 's/MultiByte/Unicode/g' | sed 's/MultiThreadedDebugMultiThreadedDebugDLLMultiThreadedMultiThreadedDLL tempx -unix2dos tempx -mv -v tempx $dest -src=libsodium/test/default/wintest.bat -cat $src | sed 's/SET[[:blank:]]\+CFLAGS=%CFLAGS%[[:blank:]]\(.*\)\/MT\(.*\)DSODIUM_STATIC[[:blank:]]\+\/DSODIUM_EXPORT/SET CFLAGS=%CFLAGS% \1\/MD\2DSODIUM_STATIC \/DSODIUM_EXPORT/g'> tempx -unix2dos tempx -mv -v tempx $src - -src=mpir/msvc/vs22/lib_mpir_gc/lib_mpir_gc.vcxproj -dest=$src -cat $src | grep -v RuntimeLibrary | sed 's/^\(.*\)NDEBUG\(.*\)$/\1NDEBUG\2\ - MultiThreadedDLL<\/RuntimeLibrary>/g' | sed 's/v[[:digit:]]\{3\}/v143/g' | sed 's/^\(.*\)_DEBUG\(.*\)$/\1_DEBUG\2\ - MultiThreadedDebugDLL<\/RuntimeLibrary>/g' > tempx -unix2dos tempx -mv -v tempx $dest - -src=mpir/msvc/vs22/dll_mpir_gc/dll_mpir_gc.vcxproj -dest=$src -cat $src | grep -v RuntimeLibrary | sed 's/^\(.*\)NDEBUG\(.*\)$/\1NDEBUG\2\ - MultiThreadedDLL<\/RuntimeLibrary>/g' | sed 's/v[[:digit:]]\{3\}/v143/g' | sed 's/^\(.*\)_DEBUG\(.*\)$/\1_DEBUG\2\ - MultiThreadedDebugDLL<\/RuntimeLibrary>/g' > tempx -unix2dos tempx -mv -v tempx $dest - -src=mpir/msvc/vs22/lib_mpir_cxx/lib_mpir_cxx.vcxproj -dest=$src -cat $src | grep -v RuntimeLibrary | sed 's/^\(.*\)NDEBUG\(.*\)$/\1NDEBUG\2\ - MultiThreadedDLL<\/RuntimeLibrary>/g' | sed 's/v[[:digit:]]\{3\}/v143/g' | sed 's/^\(.*\)_DEBUG\(.*\)$/\1_DEBUG\2\ - MultiThreadedDebugDLL<\/RuntimeLibrary>/g' > tempx -unix2dos tempx -mv -v tempx $dest - -src=$wxwin/include/wx/msw/setup.h -cat $src | sed 's/^#define\([[:blank:]]\+\)wxUSE_IPV6\([[:blank:]]\+\).*$/#define\1wxUSE_IPV6\21/g'| sed 's/^#define\([[:blank:]]\+\)WXWIN_COMPATIBILITY_3_0\([[:blank:]]\+\).*$/#define\1WXWIN_COMPATIBILITY_3_0\20/g'| sed 's/^#define\([[:blank:]]\+\)wxUSE_COMPILER_TLS\([[:blank:]]\+\).*$/#define\1wxUSE_COMPILER_TLS\22/g'| sed 's/^#define\([[:blank:]]\+\)wxUSE_STD_CONTAINERS\([[:blank:]]\+\).*$/#define\1wxUSE_STD_CONTAINERS\21/g'| sed 's/^#define\([[:blank:]]\+\)wxUSE_DIALUP_MANAGER\([[:blank:]]\+\).*$/#define\1wxUSE_DIALUP_MANAGER\20/g'| sed 's/^#define\([[:blank:]]\+\)WXWIN_COMPATIBILITY_3_0\([[:blank:]]\+\).*$/#define\1WXWIN_COMPATIBILITY_3_0\20/g'| sed 's/^#define\([[:blank:]]\+\)wxUSE_STD_STRING_CONV_IN_WXSTRING\([[:blank:]]\+\).*$/#define\1wxUSE_STD_STRING_CONV_IN_WXSTRING\21/g'> tempx -mv tempx $src -docs/mkdocs.sh +# if [[ "$OSTYPE" == "linux-gnu"* ]]; then +# fi From 522b96336ca948262919851146e3a12d7fca8959 Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Sat, 2 Jul 2022 16:44:09 +1000 Subject: [PATCH 04/15] finally figured out how to social network lookups --- docs/recognizing_categories_and_instances.md | 17 +++++++++--- docs/social_networking.md | 28 ++++++++++++++++++++ docs/writing_and_editing_documentation.md | 28 +++++++++++--------- 3 files changed, 57 insertions(+), 16 deletions(-) diff --git a/docs/recognizing_categories_and_instances.md b/docs/recognizing_categories_and_instances.md index c2b6346..92ef18b 100644 --- a/docs/recognizing_categories_and_instances.md +++ b/docs/recognizing_categories_and_instances.md @@ -90,7 +90,7 @@ The optimal instance recognition algorithm, for normally distributed attributes, and for already existent, already known categories, is Mahalanobis distance -Is not the spam characteristic of an email just its $T.(S-G)$, where $T$ is +Is not the spam probability of an email just its $T.(S-G)$, where $T$ is the vector of the email, and $S$ and $G$ are the average vectors of good email and spam email? @@ -103,9 +103,18 @@ normal. But variance is, approximately, the log of probability, so Mahalanobis is more or less Bayes filtering, or at least one can be derived in terms of the other. -So we can reasonably reduce each email into twenty questions space, or, just -to be on the safe side, forty questions space. (Will have to test how many -dimensions empirically retain angles and distances) +So we can reasonably reduce each email into twenty questions space, albeit in practice, a great deal more than twenty. Finding far from random +dimensions that reduce it to a mere twenty or so is an artificial intelligence +hard problem. If random dimensions, need $\bigcirc20\log{(n)}$ dimensions +where $n$ is the number of things. And $n$ is apt to be very large. + +Finding interesting and relevant dimensions, and ignoring irrelevant and +uninteresting dimensions, is the big problem. It is the tie between +categorizing the world into natural kinds and seeing what matters in the +perceptual data while ignoring what is trivial and irrelevant. This requires +non trivial non local and non linear combinations of data, for example +adjusting the perceived colour of the apple for shadow and light colour, so +see the ample, rather than merely the light scattered by the apple into the eye. We then, in the reduced space, find natural groupings, a natural grouping being an elliptic region in high dimensional space where the density is diff --git a/docs/social_networking.md b/docs/social_networking.md index ef60daf..a5ce97c 100644 --- a/docs/social_networking.md +++ b/docs/social_networking.md @@ -363,6 +363,34 @@ way hash, so are not easily linked to who is posting in the feed. This handles public posts. +### Kademlia in social space + +The vector of each identity is a sequence ones and zeros of unbounded +length, unboundedly large dimension, but in practice you will not need +anything beyond the first few hundred. + +We deterministically generate the vector by hashing the public key of the identity. + +We do not have, and do not need, an exact consensus on how much of the +vector to actually use, but everyone needs to use roughly the same amount +as everyone else. The amount is adjusted according to what is, over time, +needed, by each identity adjusting according to circumstances, with the +result that over time the consensus adjusts to what is needed. + +Each party indicates what entities he can provide a direct link to by +publishing the sum of the vectors of the parties he can link to - and also +the sum of the their sums, and also the sum of their ... to as many deep as +turns out to be needed in practice, which is likely to two or three such +vector sums, maybe four or five. + +When someone is looking to find how to connect to an identity, he goes +through the entities he can connect to, and looks at the dot product of +their sum vectors with target vector. + +He contacts the closest entity, or a close entity, and if that does not work +out, contacts another. The closest entity will likely be able to contact +the target, or contact an entity more likely to contact the target. + ## Private messaging Private messaging is trivial. There is no end of excellent existing software diff --git a/docs/writing_and_editing_documentation.md b/docs/writing_and_editing_documentation.md index 2e817f0..cab51ac 100644 --- a/docs/writing_and_editing_documentation.md +++ b/docs/writing_and_editing_documentation.md @@ -307,13 +307,15 @@ In this table, edited in a fixed font, you are using whitespace and blank lines ### Grid tables -Allows multiline, and alignment, but visual studio does not like it, and you still have to count those spacees +Allows multiline, and alignment, but visual studio does not like it, and you still have to count those spaces +---------------+---------------+--------------------+ | Fruit | Price | Advantages | +===============+==============:+====================+ -| Bananas | $1.34 | - built-in wrapper | -| | | - bright color | +| Bananas | $1.34 | Mary had a little lamb whose fleece was white as snow, and everywhere that | +| | | Mary went the lamb was sure to go | +| | | | +| | | bright color | +---------------+---------------+--------------------+ | Oranges | $2.10 | - cures scurvy | | | | - tasty | @@ -479,7 +481,16 @@ defined by very small source code. font-weight="400" stroke-width="2" style="text-decoration:underline; cursor:pointer;" > - + + + + + - - - + d="M14 101, c40 -20, 30 -56, 54 -18 s60 15, 40 15 c -20,0 -10,-20 0,-20 q 5,0 10,10" /> A simple scalable vector graphic From 8530ae73b0e8baa46a5a69a46ebb5a906a91acdd Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Sun, 3 Jul 2022 12:53:50 +1000 Subject: [PATCH 05/15] finally figured the connection distribution algorithm --- .gitmodules | 9 ++-- docs/social_networking.md | 106 ++++++++++++++++++++++++++++++++------ 2 files changed, 97 insertions(+), 18 deletions(-) diff --git a/.gitmodules b/.gitmodules index d7903af..b632f5a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,12 @@ [submodule "libsodium"] path = libsodium - url = cpal.pw:~/libsodium.git + url = git@rho.la:~/libsodium.git + branch = rho-fork [submodule "mpir"] path = mpir - url = cpal.pw:~/mpir.git + url = git@rho.la:~/mpir.git + branch = rho-fork [submodule "wxWidgets"] path = wxWidgets - url = cpal.pw:~/wxWidgets.git + url = git@rho.la:~/wxWidgets.git + branch = rho-fork \ No newline at end of file diff --git a/docs/social_networking.md b/docs/social_networking.md index a5ce97c..2f20f99 100644 --- a/docs/social_networking.md +++ b/docs/social_networking.md @@ -285,7 +285,12 @@ dangerous centralization would fail under the inevitable attack. It needs to I will describe the Kademlia distributed hash table algorithm not in the way that it is normally described and defined, but in such a way that we - can easily replace its metric by [social distance metric], assuming that we can construct a suitable metric, which reflects what feeds a given host is following, and what feeds the hosts of which it knows the unstable network address of are following, and what stable network addresses it knows and the feeds they are following, a quantity over which a distance can be found that reflects how close a peer is to an unstable network address, or knows a peer that is likely to know a peer that is likely to know an unstable network address. + can easily replace its metric by [social distance metric], assuming that we + can construct a suitable metric, which reflects what feeds a given host is + following, and what network addresses it knows and the feeds they are + following, a quantity over which a distance can be found that reflects how + close a peer is to an unstable network address, or knows a peer that is + likely to know a peer that is likely to know an unstable network address. A distributed hash table works by each peer on the network maintaining a large number of live and active connections to computers such that the @@ -305,13 +310,6 @@ Kademlia the $log_2$ of the exclusive-or between his hash and your hash. and open ports, and connections that are distant from you distant from each other. - Social distance is costly and complex to calculate, and requires that - information on a public feed showing its social connections be widely - shared, which is a lot of information that everyone has to acquire and - store, and perform a heavy calculation on. If there are more than thirty - or a hundred entities, need to use dimensional reduction. But we do not - need to do it very often. - The reason that the Kademlia distributed hash table cannot work in the face of enemy action, is that the shills who want to prevent something from being found create a hundred entries with a hash close to their target @@ -365,11 +363,12 @@ This handles public posts. ### Kademlia in social space -The vector of each identity is a sequence ones and zeros of unbounded -length, unboundedly large dimension, but in practice you will not need -anything beyond the first few hundred. +The vector of an identity is $+1$ for each one bit, and $-1$ for each zero bit. -We deterministically generate the vector by hashing the public key of the identity. +We don't use the entire two hundred fifty six dimensional vector, just +enough of it that the truncated vector of every identity that anyone might +be tracking has a very high probability of being approximately orthogonal +to the truncated vector of every other identity. We do not have, and do not need, an exact consensus on how much of the vector to actually use, but everyone needs to use roughly the same amount @@ -381,15 +380,92 @@ Each party indicates what entities he can provide a direct link to by publishing the sum of the vectors of the parties he can link to - and also the sum of the their sums, and also the sum of their ... to as many deep as turns out to be needed in practice, which is likely to two or three such -vector sums, maybe four or five. +vector sums, maybe four or five. What is needed will depend on the pattern of tracking that people engage in in practice. + +If everyone behind a firewall or with an unstable network address arranges +to notify a well known peer with stable network address whenever his +address changes, and that peer, as part of the arrangement, includes him in +that peer's sum vector, the number of well known peers with stable +network address offering this service is not enormously large, they track +each other, and everyone tracks some of them, we only need the sum and +the sum of sums. When someone is looking to find how to connect to an identity, he goes through the entities he can connect to, and looks at the dot product of -their sum vectors with target vector. +their sum vectors with target identity vector. He contacts the closest entity, or a close entity, and if that does not work out, contacts another. The closest entity will likely be able to contact -the target, or contact an entity more likely to contact the target. +the target, or contact an entity more likely to be able to contact the target. + +* the identity vector represents the public key of a peer +* the sum vector represents what identities a peer thinks he has valid connection information for. +* the sum of sum vectors indicate what identities that he thinks he can connect to think that they can connect to. +* the sum of the sum of the sum vectors ... + +A vector that provides the paths to connect to a billion entities, each of +them redundantly through a thousand different paths, is still sixty or so +thirty two bit signed integers, distributed in a normal distribution with a +variance of a million or so, but everyone has to store quite a lot of such +vectors. Small devices such as phones can get away with tracking a small +number of such integers, at the cost of needing more lookups, hence not being +very useful for other people to track for connection information. + +To prevent hostile parties from jamming the network by registering + identities that closely approximate identities that they do not want people + to be able to look up, we need the system to work in such a way that + identities that lots of people want to look up tend to heavily over + represented in sum of sums vectors relative to those that no one wants to + look up. If you repeatedly provide lookup services for a certain entity, + you should track that entity that had last stable network address on the + path that proved successful to the target entity, so that peers that + provide useful tracking information are over represented, and entities that + provide useless tracking information are under represented. + + If an entity makes publicly available network address information for an + identity whose vector is an improbably good approximation to an existing + widely looked up vector, a sybil attack is under way, and needs to be + ignored. + +To be efficient at very large scale, the network should contain a relatively +small number of large well connected devices each of which tracks the +tracking information of large number of other such computers, and a large +number of smaller, less well connected devices, that track their friends and +acquaintances, and also track well connected devices. Big fanout on on the +interior vertices, smaller fanout on the exterior vertices, stable identities +on all devices, moderately stable network addresses on the interior vertices, possibly unstable network addresses on the exterior vertices. + +If we have a thousand identities that are making public the information +needed to make connection to them, and everyone tracks all the peers that +provide third party look up service, we need only the first sum, and only +about twenty dimensions. + +But if everyone attempts to track all the connection information network +for all peers that provide third party lookup services, there are soon going +to be a whole lot shill, entryist, and spammer peers purporting to provide +such services, whereupon we will need white lists, grey lists, and human +judgement, and not everyone will track all peers who are providing third +party lookup services, whereupon we need the first two sums. + +In that case random peer searching for connection information to another +random peer first looks to through those for which has good connection +information, does not find the target. Then looks through for someone connected to the target, may not find him, then looks for someone connected to someone connected to the target and, assuming that most genuine peers providing tracking information are tracking most other peers providing genuine tracking information, and the peer doing the search has the information for a fair number of peers providing genuine tracking information, will find him. + +Suppose there are a billion peers for which tracking information exists. In that case, we need the first fifty dimensions, and possibly one more level of indirection in the lookup (the sum of the sum of the sum of vectors being tracked). Suppose a trillion peers, then about the first sixty dimensions, and possibly one more level of indirection in the lookup. + +That is a quite large amount of data, but if who is tracking whom is stable, even if the network addresses are unstable, updates are infrequent and small. + +If everyone tracks ten thousand identities, and we have a billion identities +whose network address is being made public, and million always up peers +with fairly stable network addresses, each of whom tracks one thousand +unstable network addresses and several thousand other peers who also +track large numbers of unstable addresses, then we need about fifty +dimensions and two sum vectors for each entity being tracked, about a +million integers, total -- too big to be downloaded in full every time, but +not a problem if downloaded in small updates, or downloaded in full +infrequently. The data can be substantially compressed by a compression algorithm that takes advantage of the fact that the values of a vector have a normal distribution around zero. + +But suppose no one specializes in tracking unstable network addresses. If your network address is unstable, you only provide updates to those following your feed, and if you have a lot of followers, you have to get a stable network address with a stable open port so that you do not have to update them all the time. Then we our list of identities whose connection information we are tracking will be considerably smaller, but our level of indirection considerably deeper - possibly needing six or so deep in sum of the sum of ... sum of identity vectors. ## Private messaging From 1fb5db8bd5d6187b450bc2e59d2754e1cec451ad Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Sun, 3 Jul 2022 14:17:26 +1000 Subject: [PATCH 06/15] preparing to switch remote repos --- wxWidgets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wxWidgets b/wxWidgets index 270d386..3a3654c 160000 --- a/wxWidgets +++ b/wxWidgets @@ -1 +1 @@ -Subproject commit 270d38601df59429710dda66832d8d91e3701296 +Subproject commit 3a3654c27f3110b7ca8887b424417b6d26e2682e From 8a00c3713f441aadee2ed353ec1012f6aaf1499b Mon Sep 17 00:00:00 2001 From: aryan Date: Sun, 3 Jul 2022 05:01:26 -0700 Subject: [PATCH 07/15] preparing to merge to checkout with changed repositories --- .gitmodules | 9 ++++++--- mpir | 2 +- wxWidgets | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules index d7903af..d9869ef 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,12 @@ [submodule "libsodium"] path = libsodium - url = cpal.pw:~/libsodium.git + url = git@rho.la:~/libsodium.git + branch = rho-fork [submodule "mpir"] path = mpir - url = cpal.pw:~/mpir.git + url = git@rho.la:~/mpir.git + branch = rho-fork [submodule "wxWidgets"] path = wxWidgets - url = cpal.pw:~/wxWidgets.git + url = git@rho.la:~/wxWidgets.git + branch = rho-fork diff --git a/mpir b/mpir index 20795fa..c7f9435 160000 --- a/mpir +++ b/mpir @@ -1 +1 @@ -Subproject commit 20795fa90044ea9adfc5a2e28c9a60d8e2eebcbd +Subproject commit c7f9435392ede4c7f2c887a44d7a9ca7d724f4dc diff --git a/wxWidgets b/wxWidgets index 270d386..a8e46b7 160000 --- a/wxWidgets +++ b/wxWidgets @@ -1 +1 @@ -Subproject commit 270d38601df59429710dda66832d8d91e3701296 +Subproject commit a8e46b7fdd0c3554bb4a55d729415c91c59d4cba From 262bcf3b36f714c602269b24d8faa41826e6d18e Mon Sep 17 00:00:00 2001 From: aryan Date: Mon, 4 Jul 2022 04:41:58 -0700 Subject: [PATCH 08/15] cmake options --- wxWidgets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wxWidgets b/wxWidgets index a8e46b7..a483b68 160000 --- a/wxWidgets +++ b/wxWidgets @@ -1 +1 @@ -Subproject commit a8e46b7fdd0c3554bb4a55d729415c91c59d4cba +Subproject commit a483b681a1b36cb519c0891c247238ae84148350 From b2b7efc77e4379bbe1fb0d5b0c39a6dd3ca775b2 Mon Sep 17 00:00:00 2001 From: aryan Date: Mon, 4 Jul 2022 15:03:31 -0700 Subject: [PATCH 09/15] integrating with upstream, when it broke mysteriously --- wxWidgets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wxWidgets b/wxWidgets index a8e46b7..a483b68 160000 --- a/wxWidgets +++ b/wxWidgets @@ -1 +1 @@ -Subproject commit a8e46b7fdd0c3554bb4a55d729415c91c59d4cba +Subproject commit a483b681a1b36cb519c0891c247238ae84148350 From 60cea2d85bc5a09c8b84d5e2e87cf3cdb48ec8ad Mon Sep 17 00:00:00 2001 From: aryan Date: Mon, 4 Jul 2022 15:16:28 -0700 Subject: [PATCH 10/15] still trying to synch remotes Now I see why multiple remotes are a pain --- wxWidgets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wxWidgets b/wxWidgets index a483b68..8880bc8 160000 --- a/wxWidgets +++ b/wxWidgets @@ -1 +1 @@ -Subproject commit a483b681a1b36cb519c0891c247238ae84148350 +Subproject commit 8880bc88ff6c2cfcd72c3fcd3ef532b5470b2103 From 48b81df8b138c381ffc23b491adf947bfe5b2556 Mon Sep 17 00:00:00 2001 From: aryan Date: Mon, 4 Jul 2022 22:07:25 -0700 Subject: [PATCH 11/15] wrapping up the failed cmake project --- docs/libraries.md | 49 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/docs/libraries.md b/docs/libraries.md index 6636e93..ab22b9a 100644 --- a/docs/libraries.md +++ b/docs/libraries.md @@ -400,19 +400,46 @@ executed than in the past. ## The standard cmake installer from source -```bash -cmake .. && cmake --build && make && make install +After long and arduous struggle with CMake, I concluded: + +That it is the hardest path from MSVC to linux. + +That no one uses it as their first choice to go from linux to windows, so it +is likely to be a hard journey in the other direction. + +I also found that the CMake scripting language was one of those +accidental languages. + +CMakeLists.text was intended as a simple list of every file. And then one +feature after another was added, ad hoc, with no coherent plan and vision, +and eventurally so many features as to become Turing Complete, but like +most accidental turing complete languages, inconsistent, unpredictable, and +the code entirely opaque, and the whole way the developers did not +want their language to be used as a language. + +CMake has gone down the wrong path, should have started with a known +language whose first class types are strings, list of strings, maps of +strings, maps of named maps of strings, and maps of maps, and CMake should +create a description of the build environment that it discovers, and a +description of the directory in which it was run in the native types of that +language, and attempt to create a hellow world program in that language +that invokes the compiler and the linker. Which program the developer +modifies as needed. + +That MSVC's embrace of cmake is one of those embrace and extend +weirndesses, and will take you on a path to ever closer integration with +non free software, rather than off that path. Either that or the people +integrating it were just responding to an adhoc list of integration features. + +That attempting a CMake build of the project using MSVC was a bad idea. +MingGW first, then MingGW integrated into vscode, in an all choco windows +environment without MSVC present. + +```bat +choco install mingw pandoc git vscode gpg4win -y ``` -To support this on linux, Cmakelists.txt needs to contain - -```default -project (Test) -add_executable(test main.cpp) -install(TARGETS test) -``` - -On linux, `install(TARGETS test)` is equivalent to `install(TARGETS test DESTINATION bin)` +That Cmake does not really work all that well with the MSVC environment. If we eventually take the CMake path, it will be after wc and build on MingGW, not before. ## The standard Linux installer From a7e2e65b6259d88dfcc2f89ed0542b0fa8c25cfd Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Thu, 7 Jul 2022 08:48:08 +1000 Subject: [PATCH 12/15] fixing automatic doc generation --- docs/icon.pandoc | 1 + .../icon.pandoc | 0 docs/mkdocs.sh | 18 ++++++++++-------- docs/names/icon.pandoc | 1 + docs/pandoc_templates/beforedotdot.pandoc | 1 - docs/pandoc_templates/icondotdot.pandoc | 1 - docs/rootDocs/icon.pandoc | 1 + mpir | 2 +- wxWidgets | 2 +- 9 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 docs/icon.pandoc rename docs/{pandoc_templates => libraries}/icon.pandoc (100%) create mode 100644 docs/names/icon.pandoc delete mode 100644 docs/pandoc_templates/beforedotdot.pandoc delete mode 100644 docs/pandoc_templates/icondotdot.pandoc create mode 100644 docs/rootDocs/icon.pandoc diff --git a/docs/icon.pandoc b/docs/icon.pandoc new file mode 100644 index 0000000..141fc0c --- /dev/null +++ b/docs/icon.pandoc @@ -0,0 +1 @@ + diff --git a/docs/pandoc_templates/icon.pandoc b/docs/libraries/icon.pandoc similarity index 100% rename from docs/pandoc_templates/icon.pandoc rename to docs/libraries/icon.pandoc diff --git a/docs/mkdocs.sh b/docs/mkdocs.sh index f393ad4..170015d 100644 --- a/docs/mkdocs.sh +++ b/docs/mkdocs.sh @@ -11,8 +11,9 @@ elif [[ "$OSTYPE" == "cygwin" ]]; then elif [[ "$OSTYPE" == "msys" ]]; then osoptions="--fail-if-warnings --eol=lf " fi -templates="./pandoc_templates" -options=$osoptions"--toc -N --toc-depth=5 --wrap=preserve --metadata=lang:en --include-in-header=$templates/icon.pandoc --include-before-body=$templates/before.pandoc --css=$templates/style.css -o" +templates=$(pwd)"/pandoc_templates" +options=$osoptions"--toc -N --toc-depth=5 --wrap=preserve --metadata=lang:en --include-in-header=icon.pandoc --include-before-body=$templates/before.pandoc --css=$templates/style.css -o" +pwd for f in *.md do len=${#f} @@ -41,8 +42,8 @@ if [[ $line =~ notmine$ ]]; fi done cd libraries -templates="../pandoc_templates" -options=$osoptions"--toc -N --toc-depth=5 --wrap=preserve --metadata=lang:en --include-in-header=$templates/icondotdot.pandoc --include-before-body=$templates/beforedotdot.pandoc --css=$templates/style.css --include-after-body=$templates/after.pandoc -o" +options=$osoptions"--toc -N --toc-depth=5 --wrap=preserve --metadata=lang:en --include-in-header=./icon.pandoc --include-before-body=$templates/before.pandoc --css=$templates/style.css --include-after-body=$templates/after.pandoc -o" +pwd for f in *.md do len=${#f} @@ -66,8 +67,8 @@ do done cd .. cd names -templates="../pandoc_templates" -options=$osoptions"--toc -N --toc-depth=5 --wrap=preserve --metadata=lang:en --include-in-header=$templates/icondotdot.pandoc --include-before-body=$templates/beforedotdot.pandoc --css=$templates/style.css --include-after-body=$templates/after.pandoc -o" +options=$osoptions"--toc -N --toc-depth=5 --wrap=preserve --metadata=lang:en --include-in-header=./icon.pandoc --include-before-body=$templates/before.pandoc --css=$templates/style.css --include-after-body=$templates/after.pandoc -o" +pwd for f in *.md do len=${#f} @@ -91,7 +92,8 @@ do done cd .. cd rootDocs -templates="../pandoc_templates" +pwd +katex="" for f in *.md do len=${#f} @@ -99,7 +101,7 @@ do if [ $f -nt ../../$base.html ]; then echo "generating $base.html from $f" - pandoc $osoptions --wrap=preserve --from markdown --to html --metadata=lang:en --css=$templates/style.css --self-contained -o ../../$base.html $base.md + pandoc $katex $options ../../$base.html $base.md #--include-in-header=style.css #else # echo " $base.html up to date" diff --git a/docs/names/icon.pandoc b/docs/names/icon.pandoc new file mode 100644 index 0000000..f43d0b9 --- /dev/null +++ b/docs/names/icon.pandoc @@ -0,0 +1 @@ + diff --git a/docs/pandoc_templates/beforedotdot.pandoc b/docs/pandoc_templates/beforedotdot.pandoc deleted file mode 100644 index 3509826..0000000 --- a/docs/pandoc_templates/beforedotdot.pandoc +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/pandoc_templates/icondotdot.pandoc b/docs/pandoc_templates/icondotdot.pandoc deleted file mode 100644 index 85695be..0000000 --- a/docs/pandoc_templates/icondotdot.pandoc +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/rootDocs/icon.pandoc b/docs/rootDocs/icon.pandoc new file mode 100644 index 0000000..cb3cce0 --- /dev/null +++ b/docs/rootDocs/icon.pandoc @@ -0,0 +1 @@ + diff --git a/mpir b/mpir index 20795fa..c7f9435 160000 --- a/mpir +++ b/mpir @@ -1 +1 @@ -Subproject commit 20795fa90044ea9adfc5a2e28c9a60d8e2eebcbd +Subproject commit c7f9435392ede4c7f2c887a44d7a9ca7d724f4dc diff --git a/wxWidgets b/wxWidgets index 3a3654c..8880bc8 160000 --- a/wxWidgets +++ b/wxWidgets @@ -1 +1 @@ -Subproject commit 3a3654c27f3110b7ca8887b424417b6d26e2682e +Subproject commit 8880bc88ff6c2cfcd72c3fcd3ef532b5470b2103 From 40dc88a37b0ccbea2602ec642fd0b758b26ab1af Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Fri, 8 Jul 2022 17:05:24 +1000 Subject: [PATCH 13/15] shortening names Preparatory to creating a proper link browse structure --- docs/index.md | 2 +- docs/libraries.md | 2 +- docs/names/{replacing_TCP.md => TCP.md} | 2 +- docs/names/{name_system.md => names.md} | 127 +++++++++++++++++- docs/names/{peering_through_nat.md => nat.md} | 4 +- docs/names/{client_server.md => server.md} | 24 ++-- docs/names/true_names_and_TCP.md | 117 ---------------- docs/parsers.md | 2 +- 8 files changed, 144 insertions(+), 136 deletions(-) rename docs/names/{replacing_TCP.md => TCP.md} (99%) rename docs/names/{name_system.md => names.md} (73%) rename docs/names/{peering_through_nat.md => nat.md} (98%) rename docs/names/{client_server.md => server.md} (98%) delete mode 100644 docs/names/true_names_and_TCP.md diff --git a/docs/index.md b/docs/index.md index 62a1463..bbb3480 100644 --- a/docs/index.md +++ b/docs/index.md @@ -145,4 +145,4 @@ worth, probably several screens. - [How to do VPNs right](how_to_do_VPNs.html) - [How to prevent malware](safe_operating_system.html) - [The cypherpunk program](cypherpunk_program.html) -- [Replacing TCP and UDP](replacing_TCP.html) +- [Replacing TCP and UDP](names/TCP.html) diff --git a/docs/libraries.md b/docs/libraries.md index bf431d8..8532d3b 100644 --- a/docs/libraries.md +++ b/docs/libraries.md @@ -833,7 +833,7 @@ which could receive a packet at any time. I need to look at the GameNetworkingSockets code and see how it listens on lots and lots of sockets. If it uses [overlapped IO], then it is golden. Get it up first, and it put inside a service later. -[Overlapped IO]:client_server.html#the-select-problem +[Overlapped IO]:server.html#the-select-problem {target="_blank"} The nearest equivalent Rust application gave up on congestion control, having programmed themselves into a blind alley. diff --git a/docs/names/replacing_TCP.md b/docs/names/TCP.md similarity index 99% rename from docs/names/replacing_TCP.md rename to docs/names/TCP.md index 4cee798..8fc471f 100644 --- a/docs/names/replacing_TCP.md +++ b/docs/names/TCP.md @@ -91,7 +91,7 @@ ECN tagged packets are dropped Raw sockets provide greater control than UDP sockets, and allow you to do ICMP like things through ICMP. -I also have a discussion on NAT hole punching, [peering through nat](peering_through_nat.html), that +I also have a discussion on NAT hole punching, [peering through nat](nat.html), that summarizes various people's experience. To get an initial estimate of the path MTU, connect a datagram socket to diff --git a/docs/names/name_system.md b/docs/names/names.md similarity index 73% rename from docs/names/name_system.md rename to docs/names/names.md index 27a6960..59f1872 100644 --- a/docs/names/name_system.md +++ b/docs/names/names.md @@ -11,10 +11,10 @@ to its name server, which will henceforth direct people to that wallet. If the wallet has a network accessible tcp and/or UDP address it directs people to that address (one port only, protocol negotiation will occur once the connection is established, rather than protocols being defined by the port -number). If not, will direct them to a UDT4 rendevous server, probably itself. +number). If not, will direct them to a UDT4 rendezvous server, probably itself. We probably need to support [uTP for the background download of bulk data]. -This also supports rendevous routing, though perhaps in a different and +This also supports rendezvous routing, though perhaps in a different and incompatible way, excessively married to the bittorrent protocol.We might find it easier to construct our own throttling mechanism in QUIC, accumulating the round trip time and square of the round trip time excluding @@ -205,6 +205,129 @@ hosting your respectable username that you do not use much. We also need a state religion that makes pretty lies low status, but that is another post. +#True Names and TCP + +Vernor Vinge [made the point](http://www.amazon.com/True-Names-Opening-Cyberspace-Frontier/dp/0312862075) that true names are an instrument of +government oppression. If the government can associate your true name +with your actions, it can punish you for those actions. If it can find the true +names associated with a transaction, it is a lot easier to tax that transaction. + +Recently there have been moves to make your cell phone into a wallet. A +big problem with this is that cell phone cryptography is broken. Another +problem is that cell phones are not necessarily associated with true names, +and as soon as the government hears that they might control money, it +starts insisting that cell phones *are* associated with true names. The phone +companies don’t like this, for if money is transferred from true name to +true name, rather than cell phone to cell phone, it will make them a servant +of the banking cartel, and the bankers will suck up all the gravy, but once +people start stealing money through flaws in the encryption, they will be +depressingly grateful that the government can track account holders down +and punish them – except, of course, the government probably will not be +much good at doing so. + +TCP is all about creating connections.  It creates connections between +network addresses, but network addresses correspond to the way networks +are organized, not the way people are organized, so on top of networks we +have domain names. + +TCP therefore establishes a connection *to* a domain name rather than a +mere network address – but there is no concept of the connection coming +*from* anywhere humanly meaningful. + +Urns are “uniform resource names”, and uris are “uniform resource identifiers” and urls are “uniform resource locators”, and that is what the +web is built out of.  + +There are several big problems with urls: + +1. They are uniform: Everyone is supposed to agree on one domain + name for one entity, but of course they don’t.  There is honest and + reasonable disagreement as to which jim is the “real” jim, because + in truth there is no one real jim, and there is fraud, as in lots of + people pretending to be Paypal or the Bank of America, in order to + steal your money. + +2. They are resources: Each refers to only a single interaction, but of + course relationships are built out of many interactions.  There is no + concept of a connection continuing throughout many pages, no + concept of logon.  In building urls on top of TCP, we lost the + concept of a connection.  And because urls are built out of TCP + there is no concept of the content depending on both ends of the + connection – that a page at the Bank might be different for Bob than + it is for Carol – that it does in reality depend on who is connected is + a kluge that breaks the architecture. + + Because security (ssl, https) is constructed below the level of a + connection, because it lacks a concept of connection extending + beyond a single page or a single url, a multitude of insecurities + result. We want https and ssl to secure a connection, but https and + ssl do not know there are such things as logons and connections. + +That domain names and hence urls presuppose agreement, agreement +which can never exist, we get cybersquatting and phishing and +suchlike. + +That connections and logons exist, but are not explicitly addressed by the +protocol leads to such attacks as cross site scripting and session fixation. + +A proposed fix for this problem is yurls, which apply Zooko’s triangle to +the web: One adds to the domain name a hash of a rule for validating the +public key, making it into Zooko’s globally unique identifier.  The +nickname (non unique global identifier) is the web page title, and the +petname (locally unique identifier) is the title under which it appears in +your bookmark list, or the link text under which it appears in a web page. + +This, however, breaks normal form.  The public key is an attribute of the +domain, while the nickname and petnames are attributes of particular web +pages – a breach of normal form related to the loss of the concept of +connection – a breach of normal form reflecting the fact that that urls +provide no concept of a logon, a connection, or a user.   + +OK, so much for “uniform”.  Instead of uniform identifiers, we should +have zooko identifiers, and zooko identifiers organized in normal form. +But what about “resource”, for “resource” also breaks normal form. + +Instead of “resources”, we should have “capabilities”.  A resource +corresponds to a special case of a capability, a resource is a capability +that that resembles a read only file handle. But what exactly are "capabilities”? + +People with different concepts about what is best for computer security +tend to disagree passionately and at considerable length about what the +word “capability” means, and will undoubtedly tell me I am a complete +moron for using it in the manner that I intend to use it, but barging ahead anyway: + +A “capability” is an object that represents one end of a communication +channel, or information that enables an entity to obtain such a channel, or +the user interface representation of such a channel, or such a potential +channel. The channel enables the possessor of the capability to do stuff to +something, or get something.  Capabilities are usually obtained by being +passed along the communication channel. Capabilities are usually +obtained from capabilities, or inherited by a running instance of a program + when the program is created, or read from storage after originally being + obtained by means of another capability. + +This definition leaves out the issue of security – to provide security, +capabilities need to be unforgeable or difficult to guess.  Capabilities are +usually defined with the security characteristics central to them, but I am +defining capabilities so that what is central is connections and managing +lots of potential connection.  Sometimes security and limiting access is a +very important part of management, and sometimes it is not. + +A file handle could be an example of a capability – it is a communication +channel between a process and the file management system.  Suppose we +are focussing on security and access management to files: A file handle +could be used to control and manage permissions if a program that has the +privilege to access certain files could pass an unforgeable file handle to +one of those files to a program that lacks such access, and this is the only +way the less privileged program could get at those files. + +Often the server wants to make sure that the client at one end of a +connection is the user it thinks it is, which fits exactly into the usual +definitions of capabilities.  But more often, the server does not care who +the client is, but the client wants to make sure that the server at the other +end of the connection is the server he thinks it is, which, since it is the +client that initiates the connection, does not fit well into many existing +definitions of security by capabilities. + # Mapping between globally unique human readable names and public keys The blockchain provides a Merkle-patricia dac of human readable names. Each diff --git a/docs/names/peering_through_nat.md b/docs/names/nat.md similarity index 98% rename from docs/names/peering_through_nat.md rename to docs/names/nat.md index 883dd11..b4d110a 100644 --- a/docs/names/peering_through_nat.md +++ b/docs/names/nat.md @@ -4,11 +4,11 @@ title: Peering through NAT ... A library to peer through NAT is a library to replace TCP, the domain name system, SSL, and email. This is covered at greater length in -[Replacing TCP](replacing_TCP.html) +[Replacing TCP](TCP.html) # Implementation issues -There is a great [pile of RFCs](./replacing_TCP.html) on issues that arise with using udp and icmp +There is a great [pile of RFCs](TCP.html) on issues that arise with using udp and icmp to communicate. ## timeout diff --git a/docs/names/client_server.md b/docs/names/server.md similarity index 98% rename from docs/names/client_server.md rename to docs/names/server.md index 324d1e2..9356db0 100644 --- a/docs/names/client_server.md +++ b/docs/names/server.md @@ -1,24 +1,24 @@ --- -title: Client Server Data Representation +title: Server Data Representation ... # related -[Replacing TCP, SSL, DNS, CAs, and TLS](replacing_TCP.html){target="_blank"} +[Replacing TCP, SSL, DNS, CAs, and TLS](TCP.html){target="_blank"} -# clients and hosts, masters and slaves +# clients and hosts, masters and servers -A slave does the same things for a master as a host does for a client. +A server does the same things for a master as a host does for a client. -The difference is how identity is seen by third parties. The slaves identity -is granted by the master, and if the master switches slaves, third parties +The difference is how identity is seen by third parties. The servers identity +is granted by the master, and if the master switches servers, third parties scarcely notice. It the same identity. The client's identity is granted by the host, and if the client switches hosts, the client gets a new identity, as for example a new email address. If we use [Pake and Opaque](libraries.html#opaque-password-protocol) for client login, then all other functionality of the server is unchanged, regardless of whether the server is a host or a -slave. It is just that in the client case, changing servers is going to change +server. It is just that in the client case, changing servers is going to change your public key. Experience with bitcoin is that a division of responsibilities, as between Wasabi wallet and Bitcoin core, is the way to go - that the peer to peer networking functions belong in another process, possibly running on @@ -31,16 +31,18 @@ desires, and contradictory functions. Ideally one would be in a basement and generally turned off, the other in the cloud and always on. Plus, I have come to the conclusion that C and C++ just suck for -networking apps. Probably a good idea to go Rust for the slave or host. +networking apps. Probably a good idea to go Rust for the server or host. The wallet is event oriented, but only has a small number of concurrent -tasks. A host or slave is event oriented, but has a potentially very large +tasks. A host or server is event oriented, but has a potentially very large number of concurrent tasks. Rust has no good gui system, there is no wxWidgets framework for Rust. C++ has no good massive concurrency system, there is no Tokio for C++. -Where do we put the gui for controlling the slave? In the master, of +Where do we put the gui for controlling the server? In the master, of course. +Where do we put the networking stuff? in the server. + # the select problem To despatch an `io` event, the standard is `select()`. Which standard sucks @@ -102,7 +104,7 @@ Linux people recommended a small number of threads, reflecting real hardware thr I pray that that wxWidgets takes care of mapping windows asynchronous sockets to their near equivalent functionality on Linux. -But writing a server/host/slave for Linux is fundamentally different to +But writing a server/host/server for Linux is fundamentally different to writing one for windows. Maybe we can isolate the differences by having pure windows sockets, startup and shutdown code, pure Linux sockets, startup and shutdown code, having the sockets code stuff data to and from diff --git a/docs/names/true_names_and_TCP.md b/docs/names/true_names_and_TCP.md deleted file mode 100644 index c6d51c9..0000000 --- a/docs/names/true_names_and_TCP.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -lang: en -title: True Names and TCP ---- -Vernor Vinge [made the point](http://www.amazon.com/True-Names-Opening-Cyberspace-Frontier/dp/0312862075) that true names are an instrument of -government oppression. If the government can associate -your true name with your actions, it can punish you for -those actions. If it can find the true names associated -with a transaction, it is a lot easier to tax that -transaction. - -Recently there have been moves to make your cell phone -into a wallet. A big problem with this is that cell -phone cryptography is broken. Another problem is that -cell phones are not necessarily -associated with true names, and as soon as the government hears -that they might control money, it starts insisting that cell phones -*are* associated with true names. The phone companies don’t like -this, for if money is transferred from true name to true name, rather -than cell phone to cell phone, it will make them a servant of the -banking cartel, and the bankers will suck up all the gravy, but once -people start stealing money through flaws in the encryption, they -will be depressingly grateful that the government can track account -holders down and punish them – except, of course, the government -probably will not be much good at doing so. - -TCP is all about creating connections.  It creates connections between network addresses, but network addresses correspond to -the way networks are organized, not the way people are organized, -so on top of networks we have domain names. - -TCP therefore establishes a connection *to* a domain name rather -than a mere network address – but there is no concept of the -connection coming *from* anywhere humanly meaningful. - -Urns are “uniform resource names”, and uris are “uniform resource identifiers” and urls are “uniform resource locators”, and that is what the web is built out of.  - -There are several big problems with urls: - -1. They are uniform: Everyone is supposed to agree on one domain name for one entity, but of course they don’t.  There is honest and reasonable disagreement as to which jim is the “real” jim, becaŭse in truth there is no one real jim, and there is fraŭd, as in lots of people pretending to be Paypal or the Bank of America, in order to steal your money. - -2. They are resources: Each refers to only a single interaction, - but of course relationships are built out of many - interactions.  There is no concept of a connection continuing - throughout many pages, no concept of logon.  In building - urls on top of TCP, we lost the concept of a connection.  And - because urls are built out of TCP there is no concept of the - content depending on both ends of the connection – that a - page at the Bank might be different for Bob than it is for - Carol – that it does in reality depend on who is connected is - a kluge that breaks the architecture. - - Because security (ssl, https) is constructed below the level of - a connection, because it lacks a concept of connection - extending beyond a single page or a single url, a multitude of - insecurities result. We want https and ssl to secure a - connection, but https and ssl do not know there are such - things as logons and connections. - -That domain names and hence urls presuppose agreement, agreement -which can never exist, we get cybersquatting and phishing and -suchlike. - -That connections and logons exist, but are not explicitly addressed -by the protocol leads to such attacks as cross site scripting and -session fixation. - -A proposed fix for this problem is yurls, which apply Zooko’s -triangle to the web: One adds to the domain name a hash of a rule -for validating the public key, making it into Zooko’s globally unique -identifier.  The nickname (non unique global identifier) is the web -page title, and the petname (locally unique identifier) is the title -under which it appears in your bookmark list, or the link text under -which it appears in a web page. - -This, however, breaks normal form.  The public key is an attribute of the domain, while the nickname and petnames are attributes of particular web pages – a breach of normal form related to the loss of the concept of connection – a breach of normal form reflecting the fact that that urls provide no concept of a logon, a connection, or a user.   - -OK, so much for “uniform”.  Instead of uniform identifiers, we -should have zooko identifiers, and zooko identifiers organized in -normal form.  But what about “resource”, for “resource” also breaks -normal form. - -Instead of “resources”, we should have “capabilities”.  A resource -corresponds to a special case of a capability, a resource is a -capability that that resembles a read only file handle. But what -exactly are “capabilities”? - -People with different concepts about what is best for computer security tend to disagree passionately and at considerable length about what the word “capability” means, and will undoubtedly tell me I am a complete moron for using it in the manner that I intend to use it, but barging ahead anyway: - -A “capability” is an object that represents one end of a -communication channel, or information that enables an entity to -obtain such a channel, or the user interface representation of such a -channel, or such a potential channel. The channel enables the -possessor of the capability to do stuff to something, or get -something.  Capabilities are usually obtained by being passed along -the communication channel. Capabilities are usually obtained from -capabilities, or inherited by a running instance of a program when -the program is created, or read from storage after originally being -obtained by means of another capability. - -This definition leaves out the issue of security – to provide security, capabilities need to be unforgeable or difficult to guess.  Capabilities are usually defined with the security characteristics central to them, but I am defining capabilities so that what is central is connections and managing lots of potential connection.  Sometimes security and limiting access is a very important part of management, and sometimes it is not. - -A file handle could be an example of a capability – it is a -communication channel between a process and the file -management system.  Suppose we are focussing on security and -access management to files: A file handle could be used to control -and manage permissions if a program that has the privilege to -access certain files could pass an unforgeable file handle to one of -those files to a program that lacks such access, and this is the only -way the less privileged program could get at those files. - -Often the server wants to make sure that the client at one end of a -connection is the user it thinks it is, which fits exactly into the usual -definitions of capabilities.  But more often, the server does not care -who the client is, but the client wants to make sure that the server -at the other end of the connection is the server he thinks it is, -which, since it is the client that initiates the connection, does not fit -well into many existing definitions of security by capabilities. diff --git a/docs/parsers.md b/docs/parsers.md index d80e6d5..9f2098d 100644 --- a/docs/parsers.md +++ b/docs/parsers.md @@ -74,7 +74,7 @@ polish order, thus implicitly executing a stack of run time typed operands, which eventually get compiled and eventually executed as just-in-time typed or statically typed operands and operators. -For [identity](identity.html), we need Cryptographic Resource Identifiers, +For [identity](names/identity.html), we need Cryptographic Resource Identifiers, which cannot conform the “Universal” Resource Identifier syntax and semantics. Lexers are not powerful enough, and the fact that they are still used From 46691cb0db428ed09931a05c063379f5680a56a3 Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Fri, 8 Jul 2022 19:19:44 +1000 Subject: [PATCH 14/15] minor edits on top of signoff of cmake branch --- docs/libraries.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/libraries.md b/docs/libraries.md index 7a43e41..6a93c61 100644 --- a/docs/libraries.md +++ b/docs/libraries.md @@ -412,8 +412,8 @@ accidental languages. CMakeLists.text was intended as a simple list of every file. And then one feature after another was added, ad hoc, with no coherent plan and vision, -and eventurally so many features as to become Turing Complete, but like -most accidental turing complete languages, inconsistent, unpredictable, and +and eventually so many features as to become Turing Complete, but like +most accidental Turing complete languages, inconsistent, unpredictable, and the code entirely opaque, and the whole way the developers did not want their language to be used as a language. @@ -427,7 +427,7 @@ that invokes the compiler and the linker. Which program the developer modifies as needed. That MSVC's embrace of cmake is one of those embrace and extend -weirndesses, and will take you on a path to ever closer integration with +weirdness's, and will take you on a path to ever closer integration with non free software, rather than off that path. Either that or the people integrating it were just responding to an adhoc list of integration features. From 089230085c5c1eb6645c21eeef625605111d3212 Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Tue, 19 Jul 2022 01:21:40 -0700 Subject: [PATCH 15/15] Still figuring how to handle names --- docs/libraries.md | 4 ++ docs/social_networking.md | 112 ++++++++++++++++++++++++++++++-------- 2 files changed, 92 insertions(+), 24 deletions(-) diff --git a/docs/libraries.md b/docs/libraries.md index 6a93c61..6a778e7 100644 --- a/docs/libraries.md +++ b/docs/libraries.md @@ -386,6 +386,10 @@ OK, provided our primary repo is not co-opted by the enemy. # Installers +Looking at cmake, choco, deb, git, and rust crates, I see a development +environment being born, as people irregularly and ad hoc integrate with +each other's features. + Wine to run Windows 10 software under Linux is a bad idea, and Windows Subsystem for Linux to run Linux software under Windows 10 is a much worse idea – it is the usual “embrace and extend” evil plot by diff --git a/docs/social_networking.md b/docs/social_networking.md index d4cc3eb..084efcd 100644 --- a/docs/social_networking.md +++ b/docs/social_networking.md @@ -264,36 +264,100 @@ of a million shills, scammers, and spammers. So, you can navigate to whole world’s public conversation through approved links and reply-to links – but not every spammer, scammer, and shill in the world can fill your feed with garbage. -## Algorithm and data structure. - - So rather than a distributed hash table structured by hash distance, - nearest neighbour by social distance. - --## Algorithm and data structure. +## Algorithm and data structure for Zooko name network address For this to work, the underlying structure needs to be something based on the same principles as Git and git repositories, except that Git relies on SSL and the Certificate Authority system to locate a repository, which dangerous centralization would fail under the inevitable attack. It needs to - have instead for its repository name system a distributed hash -table within which local repositories find the network addresses of remote -repositories on the basis of the public key of a Zooko identity of a person -who pushed a tag or a branch to that repository, a branch being a thread, -and the branch head in this case being the most recent response to a thread -by a person you are following. +find the network addresses of remote repositories on the basis of the public +key of a Zooko identity of a person who pushed a tag or a branch to that +repository, a branch being a thread, and the branch head in this case being +the most recent response to a thread by a person you are following. -So the hashes of identities are tracked by the distributed hash table, but the -hashes of posts are not, because that would result in excessive numbers of -lookups in a table that would very quickly hit its scaling limits. The hashes -of posts are tracked by the repository of the feed that you are looking at, so -require only local lookup, which is faster and less costly than a distributed -lookup. This is equivalent to a fully distributed hash table where the key is -not hash of post, but global name of area of interest, zooko nickname, -zooko public key followed by his human readable thread name (branch -name or tag name in git terminology) followed by hash of post, so that -items that are likely to be looked up together are likely to be located -physically close together on the same disk and will be sent along the same -network connection. +We want to support a zooko identity for a machine whose owner wants +anyone in the world to be able to connect to, perhaps because he wants an +audience for his ideas, or for what he is selling. And we also want to +support machines for which the connection information is a shared +secret, distributed on a need to know basis. + +And we do not want a central authority with the capability to decide +what that address is. + +For the normal case, zooko identity with public connect information, the +controller of the machine makes public a small number of other zooko +identities which have publicly accessible connect information, and very +long lived network addresses, so that lots of entities are going to have their +current network address cached, which identities he promises to regularly +inform of his current network address. And those entities make public +what they know of that network address, how recently they were informed +of it, the likelihood of that network address suddenly changing, and +apparent uptime of the entity whose network address they are reporting on. + +The final authority for each such item of information is the Zooko +signature of the entity that wishes to be found, and the Zooko signatures of +the other entities that he keeps informed. Thus, the authority over the +informations is fully distributed. + +But in order to collect, distribute, and efficiently obtain this potentially +very large pile of data, there has to be a fair bit of centralization in +practice. Git source code distribution provides a model of how to handle +this without dangerous or harmful centralization, or a central point of +failure. + +For any one library on Git, there are an enormous number of branches. But +in practice, everone winds up following one branch of that library, and if +you make changes in it, and want your changes included, you have to get +the man (and it is always a man) who runs that branch to pull your branch +into his. And that is the centralization that is needed for efficient +distribution of data. But if he is not doing a very good job, some people, +and eventually everyone, eventually winds up following a repository with a +different name, reflecting the fact that a different man is running it. And +that is decentralization that is needed to prevent misconduct or single point of failure. + +So, if someone is providing the service of making other people's network +addresses publicly available, he has to get that one man to pull his data. +Or get another man, whose data is pulled by that one man, to pull his data. + +The reason git repositories scale is that the one man who in fact controls +the one repository that matters the most trusts several other men, each of +whom trust several others, and so information percolates through many +trusted people, eventually into the central repository, where everyone sees it. + +Perhaps that one man might fail to include some zooko identity data for +wicked reasons, that he does not want people to hear what those people are +saying, that he wants to get between the man who wishes to speak, and the +man who wishes to hear. Then some people will start pulling an additional +branch that does include those people, and eventually everyone winds up +pulling that branch, and after a while not pulling the old branch, and +eventually nearly everyone will do the same. + +On the other hand, that one man might fail to include some zooko identity +data because he thinks it is a pile of sybils, shills, scammers, and +entryists, and the pile is too large, wasting too much disk space and +bandwidth, and if he is right, most people will not want that useless +misinformation cluttering up their disks. Or some people might disagree, +and pull a branch that does include those questionable identitities. + +Once our system starts to attract substantial use and attention, a vast pile +of sybil Zooko identities will appear, whose network addresses seem to be +located all over the world, but a very large proportion of them will in fact +be located on one computer in the bowels of the State Department or +Harvard, and to avoid collecting and distributing a hundred gigabytes of +this worthless and meaningless information will require human judgement +and human action, which judgment and action will have to be done by a +rather small number of humans, who will thus have rather too much +power, and their failures rather too great consequences. But, following the +way that git is designed and in practice used, we do not have to give them +unlimited power, nor allow them to be a central point of failure. + +### runningt in schism, with many approximately equal branches + +Under attack, the system may well schism, with no one source that lists all +or most Zooko identities that people are interested in contacting, but it +should, like git, be designed to schism, and work well enough while +schismed. That is what makes Git centralization truly decentralized. +Sometimes, often, there is no one authoritative branch, and things still work. The messages of the people you are following are likely to be in a relatively small number of repositories, even if the total number of

To Home page