diff options
Diffstat (limited to 'lib')
| -rwxr-xr-x | lib/_ak_checks | 4 | ||||
| -rwxr-xr-x | lib/_ak_cjdns | 7 | ||||
| -rwxr-xr-x | lib/_ak_coin | 2 | ||||
| -rwxr-xr-x | lib/_ak_config | 11 | ||||
| -rwxr-xr-x | lib/_ak_datetime (renamed from lib/_ak_utils) | 5 | ||||
| -rwxr-xr-x | lib/_ak_fm | 6 | ||||
| -rwxr-xr-x | lib/_ak_fs | 15 | ||||
| -rwxr-xr-x | lib/_ak_gpg | 45 | ||||
| -rwxr-xr-x | lib/_ak_hash_exchange | 8 | ||||
| -rwxr-xr-x | lib/_ak_html | 5 | ||||
| -rwxr-xr-x | lib/_ak_ipfs | 28 | ||||
| -rwxr-xr-x | lib/_ak_irc | 10 | ||||
| -rwxr-xr-x | lib/_ak_lib_load | 32 | ||||
| -rwxr-xr-x | lib/_ak_log | 28 | ||||
| -rwxr-xr-x | lib/_ak_maintainance | 5 | ||||
| -rwxr-xr-x | lib/_ak_network | 18 | ||||
| -rwxr-xr-x | lib/_ak_network_cjdns | 5 | ||||
| -rwxr-xr-x | lib/_ak_network_incoming | 99 | ||||
| -rwxr-xr-x | lib/_ak_network_ipfs | 11 | ||||
| -rwxr-xr-x | lib/_ak_network_stellar | 50 | ||||
| -rwxr-xr-x | lib/_ak_network_utils | 81 | ||||
| -rwxr-xr-x | lib/_ak_network_yggdrasil | 23 | ||||
| -rwxr-xr-x | lib/_ak_node | 8 | ||||
| -rwxr-xr-x | lib/_ak_ns | 364 | ||||
| -rwxr-xr-x | lib/_ak_pkg | 66 | ||||
| -rwxr-xr-x | lib/_ak_sblock | 6 | ||||
| -rwxr-xr-x | lib/_ak_schain | 2 | ||||
| -rwxr-xr-x | lib/_ak_script | 27 | ||||
| -rwxr-xr-x | lib/_ak_settings | 9 | ||||
| -rwxr-xr-x | lib/_ak_sh | 6 | ||||
| -rwxr-xr-x | lib/_ak_smfiles | 5 | ||||
| -rwxr-xr-x | lib/_ak_wallet | 2 | ||||
| -rwxr-xr-x | lib/_ak_yggdrasil | 8 | ||||
| -rwxr-xr-x | lib/_ak_zblock | 17 | ||||
| -rwxr-xr-x | lib/_ak_zchain | 15 |
35 files changed, 927 insertions, 106 deletions
diff --git a/lib/_ak_checks b/lib/_ak_checks index c08863e..97b3d8a 100755 --- a/lib/_ak_checks +++ b/lib/_ak_checks @@ -17,7 +17,8 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log function _ak_checks_example_check_for_base64_strings(){ @@ -41,3 +42,4 @@ function _ak_checks_example_check_for_base64_strings(){ fi } +_ak_log_debug "_ak_checks loaded $(caller)" diff --git a/lib/_ak_cjdns b/lib/_ak_cjdns index 69e5ffc..51832d3 100755 --- a/lib/_ak_cjdns +++ b/lib/_ak_cjdns @@ -17,9 +17,10 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_network -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_network rust_sh_install_url="https://sh.rustup.rs" cjdns_src_git_repo_url="https://github.com/cjdelisle/cjdns" cjdnstoolspath="$HOME/cjdns/tools" @@ -198,3 +199,5 @@ function _ak_cjdns_get_ip(){ awk '{print $2}' | \ cut -d'/' -f1 } + +_ak_log_debug "_ak_cjdns loaded $(caller)" diff --git a/lib/_ak_coin b/lib/_ak_coin index 4c58e2d..413d575 100755 --- a/lib/_ak_coin +++ b/lib/_ak_coin @@ -30,3 +30,5 @@ function _ak_coin_stats(){ echo "Coinbase: $COINBASE" echo "Genesis: $GENESIS" } + +_ak_log_debug "_ak_coin loaded $(caller)" diff --git a/lib/_ak_config b/lib/_ak_config index f8b1460..085d79f 100755 --- a/lib/_ak_config +++ b/lib/_ak_config @@ -17,10 +17,14 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_node +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_node +_ak_lib_load _ak_fs function _ak_config_show(){ # We will be using our public key also to put it in the block later + tempdir="$(_ak_make_temp_directory)" + cd $tempdir KEY="self.pub" ak-gpg --export-key-self-to-file _ak_log_debug "$KEY" @@ -31,6 +35,7 @@ function _ak_config_show(){ { "profile":'$profile', "genesis":"'$(cat $AK_WORKDIR/config/zgenesis)'", + "keymaps":'$(ak gpg -l 2>/dev/null | while read line; do ak gpg --export-key $line $line && ak fs --add $line | sed -e 's/.*/{"fingerprint":"'$line'","map":"&"},/' ; done | tr -d '\n'|sed 's/^/[/;s/,$/],/')' "gpg":{ "ipfs":"'$GPG_PUB_KEY'", "fingerprint":"'$(ak gpg --get-key-fingerprint-from-ipfs $GPG_PUB_KEY)'" @@ -38,10 +43,13 @@ function _ak_config_show(){ "zchain":"'$(cat $AK_WORKDIR/config/zchain)'", "zlatest":"'$(ak zchain --get-latest)'" }'| jq; + cd + rm -rf $tempdir } function _ak_config_publish(){ _ak_config_show | jq -c -M > tmpfile + akfs_map_v3="$(_ak_fs_import tmpfile)" ipfs_hash="$(_ak_ipfs_add tmpfile)" _ak_ipfs_config_publish $ipfs_hash if [ $? != 0 ] @@ -58,3 +66,4 @@ function _ak_config_published(){ _ak_ipfs_cat $(_ak_node_info_ipfs_hash) | jq } +_ak_log_debug "_ak_config loaded $(caller)" diff --git a/lib/_ak_utils b/lib/_ak_datetime index d9204e9..a25696f 100755 --- a/lib/_ak_utils +++ b/lib/_ak_datetime @@ -17,6 +17,7 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### + function _ak_datetime_unix(){ date -u +%s | tr -d '\n' } @@ -33,6 +34,10 @@ function _ak_datetime_human_date_only(){ date -u +%Y%m%d } +function _ak_datetime_human_date_only_yesterday(){ + date --date=yesterday -u +%Y%m%d 2>/dev/null || date -v -1d -u +%Y%m%d 2>/dev/null +} + function _ak_datetime_unix_to_human(){ if [ ! -z $1 ] && [ -n "$1" ] && [ "$(echo $1 | sed -e 's/[0-9]\{10\}//g')" == "" ] then @@ -18,7 +18,9 @@ ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_script +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_script function _ak_fm_remove_line_from_file(){ tempfile="$(_ak_make_temp_file)" @@ -51,3 +53,5 @@ function _ak_fm_sort_uniq_file(){ _ak_log_info "Sorting $1... Done!" fi } + +_ak_log_debug "_ak_fm loaded $(caller)" @@ -18,8 +18,9 @@ ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_hash_exchange +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_hash_exchange function _ak_fs_dir_init_setup(){ _ak_check_and_create_dir $AK_MAPSDIR @@ -111,6 +112,14 @@ function _ak_fs_import(){ # _ak_log_info "Storing original hash of $1 along with its name" sha512sum "$1" > $TEMPDIR/3rd_gen_map + hashgrep="$(grep -rn $(cat $TEMPDIR/3rd_gen_map | cut -d ' ' -f 1) $AK_MAPSDIR)" + if [ $? -eq 0 ] + then + map="$(basename $( echo $hashgrep | cut -d ':' -f 1 ))" + _ak_log_error "File $1 found @ $map" + echo $map + exit 0 + fi _ak_log_info "Encoding to base64" base64 $1 > file FILE="file" @@ -759,3 +768,5 @@ function _ak_fs_net_cat_from_map_hash(){ _ak_fs_net_cat `_ak_fs_from_map_net_get_root_hash $1` `_ak_fs_from_map_net_get_original_hash $1` fi } + +_ak_log_debug "_ak_fs loaded $(caller)" diff --git a/lib/_ak_gpg b/lib/_ak_gpg index c8cc669..8f014f8 100755 --- a/lib/_ak_gpg +++ b/lib/_ak_gpg @@ -17,10 +17,11 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_ipfs -source $AK_LIBDIR/_ak_config -source $AK_LIBDIR/_ak_settings +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_ipfs +_ak_lib_load _ak_config +_ak_lib_load _ak_settings export AK_FINGERPRINT="$(_ak_settings_get gpg.fingerprint)" @@ -133,6 +134,15 @@ function _ak_gpg_sign_clear(){ fi } +function _ak_gpg_sign_clear_with_key(){ + if [ ! -z $1 ] && [ -n "$1" ] && [ ! -z $2 ] && [ -n "$2" ] && [ ! -z $3 ] && [ -n "$3" ] + then + _ak_gpg --clear-sign --sign-with $3 --armor --output $1 $2 + else + exit 1 + fi +} + function _ak_gpg_encrypt_sign(){ if [ ! -z $1 ] && [ -n "$1" ] && [ ! -z $2 ] && [ -n "$2" ] && [ ! -z $3 ] && [ -n "$3" ] then @@ -196,10 +206,19 @@ function _ak_gpg_verify_signature(){ fi } +function _ak_gpg_key_export(){ + if [ ! -z $1 ] && [ -n "$1" ] && [ ! -z $2 ] && [ -n "$2" ] + then + _ak_gpg --armour --output $2 --export $1 + else + exit 1 + fi +} + function _ak_gpg_key_self_export(){ if [ ! -z $1 ] && [ -n "$1" ] then - _ak_gpg --armour --output $1 --export $AK_FINGERPRINT + _ak_gpg_key_export $AK_FINGERPRINT $1 else exit 1 fi @@ -243,6 +262,20 @@ function _ak_gpg_list_secret_keys_long(){ uniq } +function _ak_gpg_select_key_to_export(){ + select x in $(_ak_gpg_list_secret_keys | tr '\n' ' ') + do + if [ -n "$x" ] + then + _ak_log_info "$x was selected" + _ak_gpg_key_export "$x" "$x.asc" + break + else + _ak_log_warning "You didn't select a key" + fi + done +} + function _ak_gpg_select_key(){ select x in $(_ak_gpg_list_secret_keys | tr '\n' ' ') do @@ -299,3 +332,5 @@ function _ak_gpg_delete_secret_key(){ fi fi } + +_ak_log_debug "_ak_gpg loaded $(caller)" diff --git a/lib/_ak_hash_exchange b/lib/_ak_hash_exchange index 2e39658..3751a8e 100755 --- a/lib/_ak_hash_exchange +++ b/lib/_ak_hash_exchange @@ -17,8 +17,10 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_fm +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_fm + AK_TREEFS="$AK_WORKDIR/tree" AK_SESSIONSDIR="$AK_WORKDIR/sessions" @@ -73,3 +75,5 @@ function _ak_he_url_request_map_hash_from_random_peer(){ _ak_he_url_request_map_hash_from_peer "$(_ak_he_select_random_peer)" "$1" fi } + +_ak_log_debug "_ak_he loaded $(caller)" diff --git a/lib/_ak_html b/lib/_ak_html index 491cb6c..281790e 100755 --- a/lib/_ak_html +++ b/lib/_ak_html @@ -17,7 +17,8 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log function _ak_generate_html_header(){ printf '<!DOCTYPE html>\n<html>\n<head>\n' @@ -305,3 +306,5 @@ function _ak_generate_html_zblock(){ printf ' </table>\n' fi } + +_ak_log_debug "_ak_html loaded $(caller)" diff --git a/lib/_ak_ipfs b/lib/_ak_ipfs index eb4ee31..16397a7 100755 --- a/lib/_ak_ipfs +++ b/lib/_ak_ipfs @@ -17,13 +17,20 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log + AK_IPFS_REPO="$AK_WORKDIR/ipfsrepo" AK_IPFS_ARTIFACTS="$AK_WORKDIR/ipfs_artifacts" +AK_IPNS_ARTIFACTS="$AK_WORKDIR/ipns_artifacts" if [ ! -d $AK_IPFS_ARTIFACTS ] then mkdir -p $AK_IPFS_ARTIFACTS fi +if [ ! -d $AK_IPNS_ARTIFACTS ] +then + mkdir -p $AK_IPNS_ARTIFACTS +fi function _ak_ipfs(){ export IPFS_PATH=$AK_IPFS_REPO; kubo $* @@ -116,7 +123,7 @@ function _ak_ipfs_scanner(){ function _ak_ipfs_add(){ if [ -z $1 ] || [ ! -n "$1" ] then - _ak_log_error "no argument given" + _ak_log_error "_ak_ipfs_add: no argument given" exit 1 fi # Receives a file @@ -132,7 +139,7 @@ function _ak_ipfs_add(){ function _ak_ipfs_block_stat(){ if [ -z $1 ] || [ ! -n "$1" ] then - _ak_log_error "no argument given" + _ak_log_error "_ak_ipfs_block_stat: no argument given" exit 1 fi _ak_ipfs block stat "$1" @@ -256,7 +263,7 @@ function _ak_ipfs_get(){ function _ak_ipfs_cat(){ if [ -z $1 ] || [ ! -n "$1" ] then - _ak_log_error "no argument given" + _ak_log_error "_ak_ipfs_cat: no argument given" exit 1 fi if [ ! -f $AK_IPFS_ARTIFACTS/$1 ] @@ -314,12 +321,17 @@ function _ak_ipfs_name_publish(){ _ak_log_error "No argument given" exit 1 fi - _ak_ipfs name publish --key="$1" "$2" + key="$(_ak_ipfs key list -l | grep $1 | cut -d ' ' -f 1)" if [ $? -ne 0 ] then _ak_log_error "Failed to get $1" exit 1 fi + if [ -f "$AK_IPNS_ARTIFACTS/$key" ] + then + cat $AK_IPNS_ARTIFACTS/$key >> $AK_IPNS_ARTIFACTS/$key.history + fi + echo $2 > $AK_IPNS_ARTIFACTS/$key } function _ak_ipfs_config_publish(){ @@ -338,12 +350,12 @@ function _ak_ipfs_name_resolve(){ _ak_log_error "No argument given" exit 1 fi - _ak_ipfs name resolve "$1" - if [ $? -ne 0 ] + if [ ! -f $AK_IPNS_ARTIFACTS/$1 ] then _ak_log_error "Failed to resolve $1" exit 1 fi + cat $AK_IPNS_ARTIFACTS/$1 } function _ak_ipfs_swarm_peers(){ @@ -564,3 +576,5 @@ function _ak_ipfs_swarm_install(){ function _ak_ipfs_get_config_ipns_key(){ _ak_ipfs_key_list_full | grep 'ak-config' | cut -d ' ' -f 1 } + +_ak_log_debug "_ak_ipfs loaded $(caller)" diff --git a/lib/_ak_irc b/lib/_ak_irc index 17cfd83..85e8bc7 100755 --- a/lib/_ak_irc +++ b/lib/_ak_irc @@ -1,8 +1,10 @@ #!/usr/bin/env bash - -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_script +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_script function _ak_irc_connect(){ - _ak_not_implemented "LOL" + _ak_not_implemented "${FUNCNAME}" } + +_ak_log_debug "_ak_irc loaded $(caller)" diff --git a/lib/_ak_lib_load b/lib/_ak_lib_load new file mode 100755 index 0000000..2790458 --- /dev/null +++ b/lib/_ak_lib_load @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +### +### arching-kaos-tools +### Tools to interact and build an Arching Kaos Infochain +### Copyright (C) 2021 - 2025 kaotisk +### +### This program is free software: you can redistribute it and/or modify +### it under the terms of the GNU General Public License as published by +### the Free Software Foundation, either version 3 of the License, or +### (at your option) any later version. +### +### This program is distributed in the hope that it will be useful, +### but WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with this program. If not, see <http://www.gnu.org/licenses/>. +### + +function _ak_lib_load(){ + typeset -F | grep $1 2>/dev/null 1>&2 || if [ -f "$AK_LIBDIR/$1" ] + then + source $AK_LIBDIR/$1 + elif [ -f "./lib/$1" ] + then + source ./lib/$1 + else + printf "Error: Could not load $1 lib" + fi + +} diff --git a/lib/_ak_log b/lib/_ak_log index c45794d..d28e663 100755 --- a/lib/_ak_log +++ b/lib/_ak_log @@ -18,7 +18,8 @@ ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_utils 2>/dev/null || source ./lib/_ak_utils 2>/dev/null +source ./lib/_ak_lib_load 2>/dev/null || source $AK_LIBDIR/_ak_lib_load 2>/dev/null +_ak_lib_load _ak_datetime export AK_LOGSDIR="$AK_WORKDIR/logs" export AK_LOGSFILE="$AK_LOGSDIR/log" @@ -74,6 +75,21 @@ function _ak_log_print_log_line(){ fi } +function _ak_log_print_log_line_irc(){ + if [ -n "$1" ] + then + timestamp="$(echo "$*" | awk '{print $1}')" + program="$(echo "$*" | awk '{print $2}')" + messagetype="$(echo "$*" | awk '{print $3}')" + message="$(echo "$*" | cut -d ' ' -f4-)" + printf '\x0300,01%s \x0303,01%s\x0300,01 \x0304,01%s\x0300,01 %s\x0301,00\n' \ + "$(_ak_datetime_unix_to_human $timestamp)" \ + "$program" \ + "$messagetype" \ + "$message" + fi +} + function _ak_log_follow(){ tail -f $AK_LOGSFILE | while read -r p || [ -n "$p" ] do @@ -81,6 +97,11 @@ function _ak_log_follow(){ done } +function _ak_log_last_line(){ + p="$(tail -n 1 $AK_LOGSFILE | tr -d '\n')" + _ak_log_print_log_line "$p" +} + function _ak_log_grep(){ if [ ! -z $1 ] && [ -n "$1" ] then @@ -138,6 +159,10 @@ function _ak_log_message(){ then _ak_log_print_log_line "$TS <$prg> [$tp] $msg" >&2 fi + if [ ! -z $AK_DEBUG_IRC ] && [ -n "$AK_DEBUG_IRC" ] && [ "$AK_DEBUG_IRC" == "yes" ] + then + _ak_log_print_log_line_irc "$TS <$prg> [$tp] $msg" >&2 + fi else echo "$TS" "<$prg>" "[ERROR]" "No message" >> $AK_LOGSFILE if [ "$AK_DEBUG" == "yes" ] @@ -190,4 +215,5 @@ function _ak_log_info(){ _ak_log_message "$PROGRAM" "INFO" "$*" } +# _ak_log_debug "_ak_log loaded $(caller)" # vim: set syntax=bash diff --git a/lib/_ak_maintainance b/lib/_ak_maintainance index 030060e..ab8d9da 100755 --- a/lib/_ak_maintainance +++ b/lib/_ak_maintainance @@ -17,7 +17,8 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log function _ak_maintainance_backup(){ if [ -n "${AK_WORKDIR}" ] && [ -d "${AK_WORKDIR}" ] @@ -81,3 +82,5 @@ function _ak_maintainance_nuke_all_but_core(){ _ak_log_error "No AK_WORKDIR found or it does not exist" fi } + +_ak_log_debug "_ak_maintainance loaded $(caller)" diff --git a/lib/_ak_network b/lib/_ak_network index d23d913..c6d048e 100755 --- a/lib/_ak_network +++ b/lib/_ak_network @@ -17,11 +17,13 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_network_ipfs -source $AK_LIBDIR/_ak_network_cjdns -source $AK_LIBDIR/_ak_network_yggdrasil -source $AK_LIBDIR/_ak_network_stellar +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_network_ipfs +_ak_lib_load _ak_network_cjdns +_ak_lib_load _ak_network_yggdrasil +_ak_lib_load _ak_network_stellar +_ak_lib_load _ak_network_incoming function _ak_network_scan(){ if [ ! -z $1 ] && [ -n "$1" ] @@ -31,6 +33,7 @@ function _ak_network_scan(){ ipfs) _ak_network_ipfs_scan; exit;; cjdns) shift; _ak_network_cjdns_scan $1; exit;; yggdrasil) shift; _ak_network_yggdrasil_scan $1; exit;; + incoming) shift; _ak_network_incoming_scan; exit;; * ) _ak_log_error "Unknown network $1";exit 1;; esac else @@ -49,10 +52,11 @@ function _ak_network_show_peers(){ cjdns) _ak_network_cjdns_show_peers; exit;; ipfs) _ak_network_ipfs_show_peers; exit;; yggdrasil) _ak_network_yggdrasil_show_peers; exit;; + incoming) _ak_network_incoming_show_peers; exit;; * ) _ak_log_error "Unknown network $1";exit 1;; esac else - (_ak_network_stellar_show_peers; _ak_network_cjdns_show_peers; _ak_network_yggdrasil_show_peers; _ak_network_ipfs_show_peers) | \ + (_ak_network_stellar_show_peers; _ak_network_cjdns_show_peers; _ak_network_yggdrasil_show_peers; _ak_network_incoming_show_peers) | \ jq -j | \ sed -e 's/]\[/,/g' | \ jq @@ -72,3 +76,5 @@ function _ak_network_connect(){ _ak_network_ipfs_connect_bootstrap fi } + +_ak_log_debug "_ak_network loaded $(caller)" diff --git a/lib/_ak_network_cjdns b/lib/_ak_network_cjdns index 31c587b..9a75690 100755 --- a/lib/_ak_network_cjdns +++ b/lib/_ak_network_cjdns @@ -17,7 +17,8 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log cjdnstoolspath="$HOME/cjdns/tools" @@ -212,3 +213,5 @@ function _ak_network_cjdns_connect(){ function _ak_network_cjdns_connect_bootstrap(){ _ak_network_cjdns_connect } + +_ak_log_debug "_ak_network_cjdns loaded $(caller)" diff --git a/lib/_ak_network_incoming b/lib/_ak_network_incoming new file mode 100755 index 0000000..cf8920d --- /dev/null +++ b/lib/_ak_network_incoming @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +### +### arching-kaos-tools +### Tools to interact and build an Arching Kaos Infochain +### Copyright (C) 2021 - 2025 kaotisk +### +### This program is free software: you can redistribute it and/or modify +### it under the terms of the GNU General Public License as published by +### the Free Software Foundation, either version 3 of the License, or +### (at your option) any later version. +### +### This program is distributed in the hope that it will be useful, +### but WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with this program. If not, see <http://www.gnu.org/licenses/>. +### +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_datetime +_ak_lib_load _ak_network_utils +_ak_lib_load _ak_fm + +export AK_ZPEERSINCOMING=$AK_ZPEERSDIR/incomingRequests + +function _ak_network_incoming_tidy(){ + exit 224 +} + +function _ak_network_incoming_show_peers(){ + if [ -f $AK_ZPEERSFILE.incoming ] + then + cat $AK_ZPEERSFILE.incoming | jq + else + _ak_log_debug "No incoming peers found" + fi +} + +function _ak_network_incoming_scan(){ + if [ -f "${AK_ZPEERSINCOMING}" ] + then + if [ $(cat ${AK_ZPEERSINCOMING}|wc -l) -gt 0 ] + then + counter=0 + count=0 + _ak_fm_sort_uniq_file ${AK_ZPEERSINCOMING} + max="$(cat ${AK_ZPEERSINCOMING}|grep -v '\.'|wc -l)" + printf '[' > walk.aknet + cat ${AK_ZPEERSINCOMING} \ + | grep -v '\.' \ + | sort \ + | uniq \ + | while read -r uip || [ -n "$uip" ] + do + ip="$(_ak_network_utils_pad_ip $uip)" + count="$(( $count + 1 ))" + _ak_log_debug "Scanning [${count}/${max}] $ip..." + node_fs_path="$AK_ZPEERSDIR/inc/$(echo -n $ip| sed 's/://g')" + scan_ts="$(_ak_datetime_unix)" + if [ ! -d ${node_fs_path} ] + then + _ak_log_info "New peer: $ip..." + mkdir -p ${node_fs_path} + fi + node_fs_pathname="${node_fs_path}/${scan_ts}" + _ak_log_info "Requesting peer's node info: $ip..." + curl \ + --connect-timeout 3 \ + -A 'akd/0.1.0; https://github.com/arching-kaos' \ + "http://[$ip]:8610/v0/node_info" 2>/dev/null | jq -c -M > ${node_fs_pathname} + node_info="$(cat ${node_fs_pathname})" + if [ $? -eq 0 ] && [ $(echo -n "$node_info" | wc -c) -gt 0 ] + then + _ak_log_info "Appending: $ip..." + if [ "$counter" -ne "0" ] + then + printf ',' >> walk.aknet + fi + if [ ! -n "$node_info" ] + then + node_info="null" + fi + printf '{"incoming":{"ip":"%s"},"node_info":%s}' \ + "$ip" "$node_info" >> walk.aknet + counter="`expr $counter + 1`" + fi + done + printf ']' >> walk.aknet + mv walk.aknet $AK_ZPEERSFILE.incoming + rm -rf $TEMPDIR + else + _ak_log_info "No incoming requests found." + fi + fi +} + +_ak_log_debug "_ak_network_incoming loaded $(caller)" diff --git a/lib/_ak_network_ipfs b/lib/_ak_network_ipfs index da52d12..172794f 100755 --- a/lib/_ak_network_ipfs +++ b/lib/_ak_network_ipfs @@ -17,15 +17,16 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_ipfs +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_ipfs function _ak_network_ipfs_scan(){ - _ak_not_implemented _ak_network_ipfs_scan + _ak_not_implemented ${FUNCNAME} } function _ak_network_ipfs_show_peers(){ - _ak_not_implemented _ak_network_ipfs_show_peers + _ak_not_implemented ${FUNCNAME} } function _ak_network_ipfs_connect_bootstrap(){ @@ -34,3 +35,5 @@ function _ak_network_ipfs_connect_bootstrap(){ _ak_ipfs_swarm_connect "$peer" done } + +_ak_log_debug "_ak_network_ipfs loaded $(caller)" diff --git a/lib/_ak_network_stellar b/lib/_ak_network_stellar index 04ce29b..d4fffcf 100755 --- a/lib/_ak_network_stellar +++ b/lib/_ak_network_stellar @@ -17,8 +17,18 @@ ### You should have received a copy of the GNU General Public License ### along with this program. If not, see <http://www.gnu.org/licenses/>. ### -source $AK_LIBDIR/_ak_log -source $AK_LIBDIR/_ak_ipfs +source $AK_LIBDIR/_ak_lib_load +_ak_lib_load _ak_log +_ak_lib_load _ak_script +_ak_lib_load _ak_ipfs + +stellarPeersDir="$AK_ZPEERSDIR/stellar" +_ak_check_and_create_dir $stellarPeersDir + +stellarParticipants="$stellarPeersDir/trustlines" +_ak_let_there_be_file $stellarParticipants +stellarParticipantsOnline="$stellarPeersDir/configured.trustlines" +_ak_let_there_be_file $stellarParticipantsOnline function _ak_network_stellar_show_ids(){ i=0 @@ -73,24 +83,8 @@ function _ak_network_stellar_scan(){ tempdir=`_ak_make_temp_directory` tempfile="$tempdir/tmp" tempaddr="$tempdir/tmpaddr" - stellarParticipants="$AK_WORKDIR/stellar-network-participants" - stellarParticipantsOnline="$AK_WORKDIR/stellar-network-participants-online" - if [ ! -f "$stellarParticipants" ] - then - touch $stellarParticipants - fi - if [ ! -f "$stellarParticipantsOnline" ] - then - touch $stellarParticipantsOnline - fi - if [ ! -f "$tempdir" ] - then - touch $tempdir - fi - if [ ! -f "$tempaddr" ] - then - touch $tempaddr - fi + _ak_let_there_be_file $tempdir + _ak_let_there_be_file $tempaddr if [ ! -z $1 ] && [ "$1" == "-l" ] && [ ! -z $2 ] then |
