-
Notifications
You must be signed in to change notification settings - Fork 2
Infocalypse
Infocalypse offers efficient, decentralized (p2p), anonymous code-sharing over Freenet.
The Infocalypse 2.0 hg extension is an extension for Mercurial that allows you to create, publish, and maintain incrementally updatable repositories in Freenet.
For better persistency, Infocalypse stores graphs of Mercurial bundles in Freenet, which can be reinserted by any user of the repo.
Some of the links in this article can only be retrieved over Freenet.
hg clone freenet://ArneBab/life-repo
hg clone life-repo real-life
hg clone real-life freenet://ArneBab/real-life
cd real-life
hg fn-pull-request --wot ArneBab/life-repo
# (enter message)
cd ../life-repo
hg fn-check-notifications --wot rneBab/life-repo
Note: replace 'ArneBab/real-life' with your own Web of Trust user, then this example works right away and ArneBab will get a notification)
Note: There’s also a simple setup script. Just run it to get Infocalypse installed and setup. But better read it first.
freenet:CHK@rTtoRxV4sSaUJ5hjbKUPjgxKRfGJe-DDfSY1FwFDPMU,HTZGBcXLLEhtI~3sPocm1Kc5QsP0e~zujV7fAbJq3-g,AAIC--8/setup_infocalypse_on_linux.sh
Infocalypse can be installed normally or anonymously.
-
To install it normally, just clone the wiki_hacking repo
-
To install anonymously, you can get a bootstrap bundle from freenet and use that to pull the current code.
See the wiki_hacking install instructions in Freenet for more details.
You need only Infocalypse:
freenet:USK@Gq-FBhpgvr11VGpapG~y0rGFOAHVfzyW1WoKGwK-fFw,MpzFUh5Rmw6N~aMKwm9h2Uk~6aTRhYaY0shXVotgBUc,AQACAAE/fniki/85/InstallingFniki
Configure your .hgrc
to enable the extension by adding following lines:
[extensions]
infocalypse = /full/path/to/wiki_hacking/infocalypse
Run fn-setup
to create the config file and temp dir. i.e.
hg fn-setup
For details see the Infocalypse HOWTO on Freenet.
Bare Basics are:
get a USK key (the last of the keys), from now on called KEY.
hg fn-genkey
- In the KEY replace NAME by
<project name>.R1
for higher reliability and redundancy or<project name>.R0
for stronger anonymity when inserting.
hg fn-create --uri KEY
hg fn-push [--aggressive] [--uri KEY]
--aggressive
makes sure you use the latest revision, even if you specify an older one.
hg fn-pull [--aggressive] [--uri REQUESTKEY]
REQUESTKEY
is the public key which is also used for retrieving a freesite. It is NOT the KEY.
for i in 1 2 3 4 5: do hg fn-reinsert --level $i; done
DO NOT use fn-reinsert
if you're concerned about correlation attacks - level 2, 3 and 5 can be done by any contributor, not only the author of the code, so you can “sponsor” a repository.