diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..037cf85 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,10 @@ +- 0.0.3 + * Upgrade clicada: progress status and encryption of cache +- 0.0.2 + * Upgrade clicada to allow auto-configuration override from ~/.config/cic/clicada +- 0.0.1 + * Add cic-cli installer + * Add clicada installer + * Add systemd services + * Add cic-cache installer + * Add bloxberg installer diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..bcab45a --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.3 diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..b79b08f --- /dev/null +++ b/install.sh @@ -0,0 +1,32 @@ +# Example Usage +# bash <(curl -s https://pip.grassrootseconomics.net/cic-staff-installer.sh) -h +# This is currently living on at pip because root is using a self signed cert +# When changes are made to this file you must run bash ./rsync-install-script.sh to sync it to the server + +branch='master' +verbose='false' + +print_usage() { + printf "CIC Staff Installer + Options: + -b Name of the branch you want use to install + -v Verbose + -h Print this help message +" +} + +while getopts 'hb:v' flag; do + case "${flag}" in + b) branch="${OPTARG}" ;; + v) verbose='true' ;; + h) print_usage + exit 0 ;; + *) print_usage + exit 1 ;; + esac +done + +temp_dir=`mktemp -d` +git clone -b $branch https://git.grassecon.net/grassrootseconomics/cic-staff-installer.git $temp_dir +cd $temp_dir +bash setup.sh \ No newline at end of file diff --git a/keys/ge.ca b/keys/ge.ca new file mode 100644 index 0000000..c3b078b --- /dev/null +++ b/keys/ge.ca @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +MIIGKTCCBBGgAwIBAgIUSYquRAO8Rq2txD1CQwg2VikVl3wwDQYJKoZIhvcNAQEL +BQAwgaMxCzAJBgNVBAYTAktFMQ8wDQYDVQQIDAZLaWxpZmkxDzANBgNVBAcMBktp +bGlmaTEdMBsGA1UECgwUR3Jhc3Nyb290cyBFY29ub21pY3MxJTAjBgNVBAMMHHJv +b3QuZ3Jhc3Nyb290c2Vjb25vbWljcy5uZXQxLDAqBgkqhkiG9w0BCQEWHWFkbWlu +QGdyYXNzcm9vdHNlY29ub21pY3MubmV0MB4XDTIyMDEyNTExMTgzM1oXDTI3MDkw +NDExMTgzM1owgaMxCzAJBgNVBAYTAktFMQ8wDQYDVQQIDAZLaWxpZmkxDzANBgNV +BAcMBktpbGlmaTEdMBsGA1UECgwUR3Jhc3Nyb290cyBFY29ub21pY3MxJTAjBgNV +BAMMHHJvb3QuZ3Jhc3Nyb290c2Vjb25vbWljcy5uZXQxLDAqBgkqhkiG9w0BCQEW +HWFkbWluQGdyYXNzcm9vdHNlY29ub21pY3MubmV0MIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEAw9FBgX2pe3g5EcNYvlMaGi9VuNgEwZhxy9qSqTfenC+G +kHxds/1wRbGG2Z+2VtQ2ab5mad0ecc6Ojbh6Yz7k2wY+zR0pYav0o6jnj7vn/k4O +d6NBmcL/qdwBfPM33HHWSrMKVN5dsBk96dnOBenIgN04lTtNmjsie2iPr/48WFTJ +udi9//V4EgNkUd6Sequ9S9UlhovCkYhFVQ0HiIVV+HegYJ1VY95rNH8BCELDXFgy +xo9xRF21xQqIxXiBz59GsDe3oLSvCUbMxG8tKlNsUfIsJWwQc1usrFjJ+mH5cVe5 +RfE3kKPO/e6G4kqPobkZStFEXJJq/zQS4nYpqt4+vtfohzQAn5lucLX391hlqzqc +G6/zYxN6BysyNA4ON30uNSf4FiC/prqGrI763AVIj5jJ/nX1++bt/fj35+3CS0pE +yDPVdsnwQSv9glaIf/OmTwhS+7PulomKvZVKvF3pDjlKu+QPQLxVs6DVt1JuWicw +2wD4jKZNDbVRYJf3UcFy8jX1fWC0JT6xVbdB/ujaB7FkPBTIQTo3UDSO5lph+CKE +jGsMeuYBgPcJ1XN9V0/G+sT5T3bZ4tPoFG0TrsJyjd1Q+qrGV6Ymh3m4rgvxzsJN +IDK1evdBpwASdI+Zsm5cbmkNMJrVpUTnML5niLNd3mKss7CXPcuogarLIFwP78MC +AwEAAaNTMFEwHQYDVR0OBBYEFJRopUpiluMePMGxxsWLyfMPBAqBMB8GA1UdIwQY +MBaAFJRopUpiluMePMGxxsWLyfMPBAqBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggIBAGycDJGE4DeJ/6X5V90ejTmujmb6u4sSEDlMO6Sly9ERcUaw +DGhA5lvoCik21c8nboRv3klzu4VQgzRIpqE/1n91o49QsjKjiHUSJmbER/bdnGoF +HyqwD9PGODgMJwZ8gqsRQoxFRsbKiw5Bejq9l9tkSntxPTXgRP5f6yhfeq1I3oB9 +hdPhsDBthNbRr7lMh45xM1lLgj0zvefEaRti68N9/1NSwX0gaYvYTZmaSyH/NWyy +QBo3EDC+WFU6vdl/GN7axo1DWMNRgFPK2CA8KlLSBxNcDEFfbcqqlHjLNk0Zk8FC +YxrnCl+wwNWDNwj6Dcy0iGaioohLftXPvwvIgTj/zkWWEbHhugvTvVp8dciVwqu+ +HztfUZPjbb/E1gq6AHIMFbHxyf/3GyAaZl/ij8bHmZfgn4jrwSw2pJFvu8m7i4i9 ++HMScGMJIMgOXhUUPTaMJNkfS+Bv+pxNFy6D/62O8gugqs/Z3p6r3gtkv2AiKHI8 +PVqIZp+0k5SqHKuZw+xxU6phxjQWQInz7zRvVno1LkVxXeKgiv/WDLRZLdHnnhuu +32FsNGKAJ0/4YM3/tiLkpVa9ElmE6BY4V0sBy63gG0UyHRIiQuPgGmlpM+qXTX87 +gdWXxsa421+RpqUXu7RfXsACtgWKOir8NZqitII7AAiCXDxIRiY+EB5EZkN/ +-----END CERTIFICATE----- diff --git a/requirements.txt b/requirements.txt index ae1bef4..3899d0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,37 +1,38 @@ alembic==1.4.2 amqp==2.6.1 asn1crypto==1.4.0 -attrs==21.2.0 +attrs==21.4.0 billiard==3.6.4.0 cbor2==5.4.1 celery==4.4.7 certifi==2021.10.8 cffi==1.14.6 -chainlib==0.0.13 -chainlib-eth==0.0.13 +chainlib==0.0.17 +chainlib-eth==0.0.21 chainsyncer==0.0.7 -charset-normalizer==2.0.7 +charset-normalizer==2.0.10 cic==0.0.2 cic-cache==0.3.0a2 -cic-eth-registry==0.6.2 -cic-types==0.2.1a5 -clicada==0.0.2a3 +cic-contracts==0.0.5 +cic-eth-registry==0.6.6 +cic-types==0.2.1a8 +clicada==0.0.6rc1 coincurve==15.0.0 -confini==0.5.3 +confini==0.5.4 cryptography==3.2.1 -cytoolz==0.11.0 +cytoolz==0.11.2 erc20-faucet==0.3.2 eth-accounts-index==0.1.2 eth-address-index==0.2.4 eth-contract-registry==0.7.2 -eth-erc20==0.1.2 +eth-erc20==0.1.6 eth-hash==0.3.2 eth-token-index==0.2.4 -eth-typing==2.2.2 -eth-utils==1.10.0 +eth-typing==3.0.0 +eth-utils==2.0.0 funga==0.5.1 -funga-eth==0.5.1 -hexathon==0.1.0 +funga-eth==0.5.3 +hexathon==0.1.1 http-hoba-auth==0.2.1a3 http-token-auth==0.0.1a6 idna==3.3 @@ -41,7 +42,7 @@ kombu==4.6.11 Mako==1.1.5 MarkupSafe==2.0.1 moolb==0.2.0 -okota==0.2.4 +okota==0.2.6 phonenumbers==8.12.12 potaahto==0.1.0 psycopg2==2.8.6 @@ -56,13 +57,13 @@ pytz==2021.3 PyYAML==5.3.1 redis==3.5.3 requests==2.26.0 -rlp==2.0.1 +rlp==3.0.0 semver==2.13.0 six==1.15.0 SQLAlchemy==1.3.20 -toolz==0.11.1 -urllib3==1.26.7 -usumbufu==0.3.3a3 +toolz==0.11.2 +urllib3==1.26.8 +usumbufu==0.3.5 uWSGI==2.0.19.1 vine==1.3.0 vobject==0.9.6.1 diff --git a/root_requirements.txt b/root_requirements.txt index 055b4c2..45d9380 100644 --- a/root_requirements.txt +++ b/root_requirements.txt @@ -1,3 +1,3 @@ cic-cache==0.3.0a2 -clicada==0.0.2a3 +clicada==0.0.6rc1 cic==0.0.2 diff --git a/rsync-install-script.sh b/rsync-install-script.sh new file mode 100644 index 0000000..f17a36e --- /dev/null +++ b/rsync-install-script.sh @@ -0,0 +1,9 @@ +host='root.grassrootseconomics.net' +file_to_sync='./install.sh' +distination_dir='/usr/local/share/python/packages' +distination_file_name='cic-staff-installer.sh' +user='root' + +echo Syncing $file_to_sync to $distination_dir as $user on $host + +rsync -avz --progress $file_to_sync $user@$host:$distination_dir/$distination_file_name diff --git a/setup.sh b/setup.sh index 83a5fd4..3f8cbf8 100644 --- a/setup.sh +++ b/setup.sh @@ -1,7 +1,7 @@ #!/bin/bash want_cic_cache_version=0.3.0a2 -want_cicada_version=0.0.2a3 +want_cicada_version=0.0.6rc1 #INSTALL_EVM=bloxberg . aux/bdbg/bdbg.sh @@ -13,7 +13,8 @@ PIP_EXTRA_ARGS=$PIP_EXTRA_ARGS PIP_EXTRA_INDEX_URL=${PIP_EXTRA_INDEX_URL:-https://pip.grassrootseconomics.net} PIP_INDEX_URL=${PIP_INDEX_URL:-"https://pypi.org/simple"} CIC_SETUP_TRUSTED_FINGERPRINT=${CIC_SETUP_TRUSTED_FINGERPRINT:-0826EDA1702D1E87C6E2875121D2E7BB88C2A746} -CIC_ROOT_URL=${CIC_ROOT_URL:-https://root.grassrootseconomics.net} +CIC_ROOT_URL=${CIC_ROOT_URL:-https://root.grassrootseconomics.net/env/dev} +CIC_ROOT_CA_FILE=${CIC_ROOT_CA_FILE:-keys/ge.ca} if [ "$UID" -eq 0 ]; then dbg $dbg_error "This cannot be run as root" @@ -39,7 +40,7 @@ dbg $dbg_debug "identify root values" set -e # check if we have existing setup -if [ ! -f "$HOME/.config/cic/staff-client/key_fingerprint" ]; then +if [ ! -e "$HOME/.config/cic/staff-client/.envinit" ]; then dbg $dbg_debug "load default environment" config_directives=(CIC_REGISTRY_ADDRESS CIC_TRUST_ADDRESS META_URL TX_CACHE_URL CHAIN_SPEC) @@ -48,7 +49,7 @@ if [ ! -f "$HOME/.config/cic/staff-client/key_fingerprint" ]; then v=${!c} if [ -z "$v" ]; then d=`mktemp -d` - curl -X GET $CIC_ROOT_URL/cic-staff-client/$c -o $d/$c + curl -X GET --cacert $CIC_ROOT_CA_FILE $CIC_ROOT_URL/$c -o $d/$c gpg --homedir $HOME/.local/share/cic/.gnupg --verify $d/$c v=`gpg --homedir $HOME/.local/share/cic/.gnupg -d $d/$c` echo $v >> $t @@ -83,6 +84,8 @@ if [ ! -f "$HOME/.config/cic/staff-client/key_fingerprint" ]; then export AUTH_KEY=`cat $HOME/.config/cic/staff-client/key_fingerprint` export AUTH_KEYRING_PATH=$HOME/.config/cic/staff-client/.gnupg export AUTH_DB_PATH=$HOME/.local/share/cic/clicada + + touch "$HOME/.config/cic/staff-client/.envinit" fi set +e diff --git a/setup_check.sh b/setup_check.sh index 12890e9..f165717 100644 --- a/setup_check.sh +++ b/setup_check.sh @@ -7,7 +7,7 @@ function checkk { fi } -if [ "$INSTALL_EVM" == "bloxberg"] ; then +if [ "$INSTALL_EVM" == "bloxberg" ] ; then exec=(systemctl git gcc pip python3 sqlite3 clang rustup cmake) else exec=(systemctl git gcc pip python3 sqlite3) diff --git a/uninstall.sh b/uninstall.sh new file mode 100644 index 0000000..2d52a30 --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,15 @@ +# Usefull when an install fails half way through + +red=`tput setaf 1` +reset=`tput sgr0` +echo -n "${red}WARNING:${reset} This will delete all your keys and settings. Continue? (y/n):" + read confirmed + if [ "$confirmed" == "y" ]; then + echo "Deleting all keys and settings..." + rm -rf $HOME/.local/share/cic/ + rm -rf $HOME/.config/cic + echo "Done" + else + echo "Aborting" + fi +exit 0 \ No newline at end of file