From b52aedc76701b3e42acdb34ad2513b119dbaf7e0 Mon Sep 17 00:00:00 2001 From: IkiWiki Date: Mon, 2 Sep 2019 12:54:51 -0400 Subject: work towards referencing bsv --- backend/.gitignore | 1 + backend/auth/bsv-public | 1 + backend/dep/build_ikiwiki.sh | 12 +++++++++++ backend/resilient/__init__.py | 30 +++++++++++++++++++-------- backend/resilient/bsv_metanet.py | 44 ++++++++++++++++++++++++++++++++++++++++ backend/update.py | 22 +++++++++++++++----- wiki/BSV.mdwn | 3 +++ wiki/index.mdwn | 22 +++++++++++--------- 8 files changed, 112 insertions(+), 23 deletions(-) create mode 100644 backend/auth/bsv-public create mode 100755 backend/dep/build_ikiwiki.sh create mode 100644 backend/resilient/bsv_metanet.py create mode 100644 wiki/BSV.mdwn 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 -- cgit v1.2.3