How To Blockchain a Git Repository for Public Archive

Undescribed Horrific Abuse, One Victim & Survivor of Many gmkarl at gmail.com
Tue Nov 15 00:51:48 PST 2022


This is not the best way. It is a way I have used. I have typed the
below without testing it in depth.

Blockchain: Arweave (written in erlang) https://arweave.net/
Tool: arkb (written in typescript) https://github.com/textury/arkb

If all the .pack and object files in your bare repository are 100,000
bytes or smaller, the upload can be made for free. Otherwise, it will
cost a small number of AR coins. You should get AR coins either way:
it opens up your options in the future.

If you want to generate a wallet offline, wallet.json is simply a JWK
file holding a 4096-bit RSA keys. Arweave has an online process at
https://docs.arweave.org/info/wallets/generating-cold-wallet .

# install arkb with yarn or npm
yarn global add arkb
# or with npm
#npm install --global arkb

# check your wallet address and balance if needed
arkb balance --wallet ~/wallet.json

# make a dedicated folder to be the upload
mkdir deployment_dir

# place the repository in the folder
git clone --mirror --bare my/remote/repository deployment_dir/repository.git

# generate dumb HTTP information in the repository so it can be cloned
from a gateway
git --git-dir deployment_dir/repository.git update-server-info

# might be optional: add .keepme files to any important empty folders
find deployment_dir -type d -empty | while read path; do touch
$path/.keepme; done

# add an index file to show web browsers, or even entire web content
echo 'Clone the repository.git subfolder.' > deployment_dir/index.txt

# deploy with arkb
arkb deploy deployment_dir --wallet ~/wallet.json --index index.txt
--bundle --debug
# or deploy files all <100,000 bytes using node2.bundlr.network
#arkb deploy deployment_dir --index index.txt --use-bundlr
https://node2.bundlr.network

# when arkb finishes, it will output a url on the https://arweave.net/ gateway

# during times of congestion, it may take multiple runs of arkb for success
# bundlr automatically retries if that happens; otherwise you may need to

# after a couple blocks have been mined, the repo should be cloneable


More information about the cypherpunks mailing list