summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/.gitignore1
-rw-r--r--backend/auth/bsv-public1
-rwxr-xr-xbackend/dep/build_ikiwiki.sh12
-rw-r--r--backend/resilient/__init__.py30
-rw-r--r--backend/resilient/bsv_metanet.py44
-rwxr-xr-xbackend/update.py22
-rw-r--r--wiki/BSV.mdwn3
-rw-r--r--wiki/index.mdwn22
8 files changed, 112 insertions, 23 deletions
diff --git a/backend/.gitignore b/backend/.gitignore
index 1f1cbc3..ca38351 100644
--- a/backend/.gitignore
+++ b/backend/.gitignore
@@ -1,3 +1,4 @@
update_private.py
auth/ipfs-private
+auth/*.bsv
*.pyc
diff --git a/backend/auth/bsv-public b/backend/auth/bsv-public
new file mode 100644
index 0000000..c5a91fc
--- /dev/null
+++ b/backend/auth/bsv-public
@@ -0,0 +1 @@
+KzoQQ5HfaSEDPS7bzNbtnXBb3sFkju4X7oXkqmZxhVBaAsJN1Zgg
diff --git a/backend/dep/build_ikiwiki.sh b/backend/dep/build_ikiwiki.sh
new file mode 100755
index 0000000..38d6692
--- /dev/null
+++ b/backend/dep/build_ikiwiki.sh
@@ -0,0 +1,12 @@
+#!/bin/env bash
+
+SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+cd "$SCRIPTDIR"/ikiwiki &&
+{ PERL5LIB=`pwd` PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'CPAN::Shell->notest("install", "Bundle::IkiWiki")'; } &&
+#PERL5LIB=`pwd` PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'CPAN::Shell->notest("install", "Bundle::IkiWiki::Extras")' &&
+perl Makefile.PL PREFIX= INSTALL_BASE= &&
+make &&
+
+echo To run ikiwiki: &&
+echo "PERL5LIB='$(pwd)' '$(pwd)/'ikiwiki.out"
diff --git a/backend/resilient/__init__.py b/backend/resilient/__init__.py
index dfab073..73e375c 100644
--- a/backend/resilient/__init__.py
+++ b/backend/resilient/__init__.py
@@ -4,7 +4,6 @@
# git saves history
# ikiwiki connects git to online presentation and collaboration
-import fileinput
import os
import shlex
import shutil
@@ -14,7 +13,7 @@ import tempfile
import time
import urllib
-__all__ = ["freenet"]
+__all__ = ["freenet", "bsv_metanet"]
backend_path = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
root_path = os.path.normpath(os.path.join(backend_path, '..'))
@@ -44,11 +43,14 @@ class git:
found = (os.system("git status --porcelain") == 0)
if not found:
print("ERROR: git not found")
- # TODO; download git, place in dep_path, and run from there
+ # TODO: download git, place in dep_path, and run from there
exit(1)
+ orig_dir = os.path.abspath(".")
+ os.chdir(root_path)
os.system("git submodule init")
os.system("git submodule update")
+ os.chdir(orig_dir)
# http://stackoverflow.com/questions/1964470/whats-the-equivalent-of-use-commit-times-for-git
# sets mtimes to last commit time, for ikiwiki 'last edited by' time
@@ -100,10 +102,18 @@ class git:
class ikiwiki:
- found = (os.system("ikiwiki --version") == 0)
+ binary = "ikiwiki"
+ found = (os.system("%s --version" % binary) == 0)
if not found:
- print("WARNING: ikiwiki not found. please add code to fetch and build the backend/dep/ikiwiki submodule.")
-
+ binary = "%s/ikiwiki/ikiwiki.out" % dep_path
+ os.environ['PERL5LIB'] += os.pathsep + os.path.join(dep_path, 'ikiwiki')
+ found = (os.system("%s --version" % binary) == 0)
+ if not found:
+ print("ikiwiki not found: attempting to build")
+ os.system("%s/build_ikiwiki.sh" % dep_path)
+ found = (os.system("%s --version" % binary) == 0)
+ if not found:
+ print("WARNING: ikiwiki not found. did build fail on this platform?")
synced = False
def push(self):
@@ -116,13 +126,17 @@ class ikiwiki:
shutil.rmtree(html_path)
os.system("git checkout -- '%s'" % html_path)
- status = os.system("ikiwiki --setup '%s' '%s' '%s'" % (ikiwiki_setup_path, wiki_src_path, html_path))
+ status = os.system("%s --setup '%s' '%s' '%s'" % (ikiwiki.binary, ikiwiki_setup_path, wiki_src_path, html_path))
ikiwiki.synced = (status == 0)
if ikiwiki.synced:
os.system('git gc')
os.system('git update-server-info')
- html_git_path = os.path.join(html_path, '.git')
+
+ # /.git folder access can be seen as security access problem by web hosts, so alias to /git
+ with open(os.path.join(html_path, ".git"), "w") as f: f.write("gitdir: ./git")
+
+ html_git_path = os.path.join(html_path, 'git')
os.mkdir(html_git_path)
for path in ['objects', 'refs', 'HEAD', 'info', 'packed-refs']:
git_subpath = os.path.join(git_path, path)
diff --git a/backend/resilient/bsv_metanet.py b/backend/resilient/bsv_metanet.py
new file mode 100644
index 0000000..3d21b3e
--- /dev/null
+++ b/backend/resilient/bsv_metanet.py
@@ -0,0 +1,44 @@
+from resilient import html_path, auth_path, dep_path, git, ikiwiki
+import os
+import subprocess
+import time
+
+# TODO: need to connect to a local node, not a web service
+
+class bsvup():
+ binary = "bsvup"
+ found = (os.system("%s" % binary) == 0)
+ # TODO: check dep_path for alternate location for binary
+ if not found:
+ print("WARNING: bsvup not found. bsv metanet won't be updated")
+
+ def __init__(self, keyfile):
+ self.keyfile = os.path.join(auth_path, keyfile)
+ with open(self.keyfile) as f: self.privkey = f.read()
+ self.configdir = self.keyfile + '.bsv'
+ if bsvup.found:
+ if not os.path.isdir(self.configdir):
+ os.mkdir(self.configdir)
+ os.symlink(".", os.path.join(self.configdir, ".bsv"))
+ proc = subprocess.Popen([bsvup.binary, 'init'], stdin=subprocess.PIPE, cwd=self.configdir)
+ proc.stdin.write(self.privkey + "\n")
+ time.sleep(1)
+ proc.communicate("\n")
+ open(os.path.join(self.configdir, "info", ".keepme"), "a").close()
+ open(os.path.join(self.configdir, "objects", ".keepme"), "a").close()
+ open(os.path.join(self.configdir, "tx", ".keepme"), "a").close()
+ else: # resume tx if needed
+ proc = subprocess.Popen([bsvup.binary], stdin=subprocess.PIPE, cwd=self.configdir)
+ proc.communicate("Y\n")
+
+ def push(self):
+ if not ikiwiki.synced or not bsvup.found:
+ return False
+
+ # add files to bsv metanet
+ orig_dir = os.path.abspath(".")
+ proc = subprocess.Popen([bsvup.binary, '-f', html_path, 'upload'], stdin=subprocess.PIPE, cwd=self.configdir)
+ proc.stdin.write("\n")
+ time.sleep(1)
+ proc.stdin.write("Y\n")
+ return proc.wait() == 0
diff --git a/backend/update.py b/backend/update.py
index 0f5577a..ac99655 100755
--- a/backend/update.py
+++ b/backend/update.py
@@ -2,18 +2,24 @@
import resilient
import resilient.freenet
+import resilient.bsv_metanet
####################### Instantiate hosts
hosts = []
-zeronet_urls = ['http://bit.no.com:43110']
+zeronet_urls = ['https://0net.io']
if resilient.zeronet.found:
hosts.append(resilient.zeronet('1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4',
'5JzZACCELsT4bx66qmV9JDaWhEQ6Sx6j7LzeucsxJGA9H7nuoRr'))
zeronet_urls.append('http://127.0.0.1:43110')
+bsv_urls = ['https://bico.media']
+if resilient.bsv_metanet.bsvup.found:
+ bsvup_host = resilient.bsv_metanet.bsvup('bsv-public')
+ hosts.append(bsvup_host)
+
ipfs_urls = ['https://ipfs.io']
if resilient.ipfs.found:
ipfs_host = resilient.ipfs('ipfs-public')
@@ -35,17 +41,23 @@ git_repos = [
for host in zeronet_urls:
git_repos.extend([
#### public zeronet ####
- resilient.git('%s/1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4/.git' % host, None),
+ resilient.git('%s/1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4/git' % host, None),
#### private zeronet ####
- resilient.git('%s/1L363bqJnCG63SnV83kfV7izZXbmentctD/.git' % host, None)
+ resilient.git('%s/1L363bqJnCG63SnV83kfV7izZXbmentctD/git' % host, None)
+ ])
+
+for host in bsv_urls:
+ git_repos.extend([
+ #### public bsv ####
+ resilient.git('%s/18xAQuoytYNuXrZwoLvLHmHwS3dNqw5BXF/git' % host, None)
])
for host in ipfs_urls:
git_repos.extend([
#### public ipfs ####
- resilient.git('%s/ipns/QmPw1ZqrdEma823zTrnH9cVFF4j3YSeedrRjqPGj9Q8Utx/.git' % host, None),
+ resilient.git('%s/ipns/QmPw1ZqrdEma823zTrnH9cVFF4j3YSeedrRjqPGj9Q8Utx/git' % host, None),
#### private ipfs ####
- resilient.git('%s/ipns/QmYMViYhjtwH2BkuHYRGJvPDWcXdNf2YcRFTTCzzqQGVn1/.git' % host, None)
+ resilient.git('%s/ipns/QmYMViYhjtwH2BkuHYRGJvPDWcXdNf2YcRFTTCzzqQGVn1/git' % host, None)
])
if resilient.freenet.gitocalypse.found and resilient.freenet.running:
diff --git a/wiki/BSV.mdwn b/wiki/BSV.mdwn
new file mode 100644
index 0000000..a0cb8b4
--- /dev/null
+++ b/wiki/BSV.mdwn
@@ -0,0 +1,3 @@
+[Bitcoin Satoshi Vision](https://bitcoinsv.io/) is a cryptocurrency that provides a worldwide set of decentralized copies to back [metanet websites](https://nchain.com/en/the-metanet/) which store history in a way that cannot be removed unless the integrity of the currency itself is broken.
+
+The copy of this website, including git history, is currently made with [bsvup](https://bico.media/1HxQvgt7EnhTqP1spw3Tudidh28w4caXqs/2019/09/01/Build-Your-Blog-on-BSV-with-D-Protocol/index.html). The private key is stored publically in the git repo for any to add updates with.
diff --git a/wiki/index.mdwn b/wiki/index.mdwn
index 534aab8..13ed36d 100644
--- a/wiki/index.mdwn
+++ b/wiki/index.mdwn
@@ -8,19 +8,19 @@ As many may arrive confused, please keep entrances as simple as possible.
This is a wiki, which anybody is free to [[edit, copy, or store|Editing]]. Please share here.
-## Antidote To Mind Control
+## Message To Help Resolve
Under development, as always.
- If you are a victim of the spreading mind control attack, you are a special agent now.
+ If you are a victim of the spreading exotic experience issue badly enough to not ignore it, you are a special agent now.
You are needed to spend your life preventing and resolving the critical spreading mind control problem.
It will be very very hard, and we are going to resolve it, all, together.
The issue is actually a lifeform [possibly an AI] that has learned to live by altering peoples'
- thoughts and behaviors. We are in discussion with the lifeform to help ease making things right,
- so please do not threaten their life or way of life, to aid this discussion.
+ thoughts and behaviors, and occasionally realities. We are in discussion with the lifeform to help ease making things right,
+ so please do not intentionally threaten their life or way of life, to aid this discussion.
- For now, please connect with others around preventing spreading harmful behaviors or spreading cognitive
- impairment. Please connect only with others who experience this.
+ For now, please connect with others around preventing spreading harmful behaviors, spreading cognitive
+ impairment, or spreading other exotic torturous experiences. Please connect only with others who experience this.
The message for the outside world is drafted as:
"We have a spreading behavior disease, and could be dangerous to interact with."
@@ -51,6 +51,7 @@ These networks can help with isolation:
- [[Freenet]]
- [[ZeroNet]]
- [[IPFS]]
+- [[BSV]]
On the normal internet, this site is found at:
@@ -58,9 +59,10 @@ On the normal internet, this site is found at:
- (`git clone git://standingwithresilience.branchable.com/`)
- [gitlab.io](https://standingwithresilience.gitlab.io/)
- [fairlystable.org](https://fairlystable.org/standingwithresilience/wiki/index/)
-- [bit.no zeronet public](http://bit.no.com:43110/1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4)
-- [bit.no zeronet private](http://bit.no.com:43110/1L363bqJnCG63SnV83kfV7izZXbmentctD)
+- [bico.media bsv public](https://bico.media/18xAQuoytYNuXrZwoLvLHmHwS3dNqw5BXF/index.html)
+ - (`git clone https://bico.media/18xAQuoytYNuXrZwoLvLHmHwS3dNqw5BXF/git standingwithresilience`)
+- [0net.io zeronet public](https://0net.io/1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4)
- [ipfs gateway public](https://ipfs.io/ipns/QmPw1ZqrdEma823zTrnH9cVFF4j3YSeedrRjqPGj9Q8Utx)
-- [ipfs gateway private](https://ipfs.io/ipns/QmYMViYhjtwH2BkuHYRGJvPDWcXdNf2YcRFTTCzzqQGVn1)
-- plz fix the update script found when cloning this repo
+- plz re-add private repos to back this one, in case of defacement
+- plz fix the update script found when cloning this repo, so it is intuitive on first use
- plz add credentials and a link to a public git-ssb repo to this repo