#!/bin/bash # (C) David Vajda # Blockchain supposition excersize programm nr. 1 # 2025-04-26 echo "(C) David Vajda" echo "Blockchain supposition excersize programm nr. 1" echo "2025-04-26" echo "alle haendler haben zu beginn $(($RANDOM % 256)) crypto einheiten gleichermassen" echo "ein block umfasst 3 Transaktionen, und einen kopf, der die checksum des vorherigen enthaelt" echo "und in die berechnung der checksum des aktuellen blocks mit einfliessen muss" echo "so wie am ende die checksum die an den naechsten block weiter gegeben wird, und sich aus dem gesamten block ausser der eigenen checksum errechnet" ndealer=5 maxamount=254 maxgoods=255 DEALERSALESPERSON=() DEALERBUYER=() GOODS=() AMOUNT=() i=0 while [ $i -lt 21 ] do DEALERSALESPERSON+=($(($RANDOM % ndealer))) DEALERBUYER+=($(($RANDOM % ndealer))) GOODS+=($(($RANDOM % maxgoods))) AMOUNT+=($((($RANDOM % (maxamount - 1))+1))) i=$(($i+1)) done i=0 while [ $i -lt 21 ] do echo "transaction number $(($i))" echo "Verkaeufer ${DEALERSALESPERSON[$i]} verkauft Ware ${GOODS[$i]} an ${DEALERBUYER[$i]} fuer ${AMOUNT[$i]} einheiten" i=$(($i+1)) done maxchecksum=255 echo "erzeugen sie nun die blocks, mit anschliessender pruefsumme, die im kopf des naechstens blocks in der blockchain enthalten ist" echo "jeder block enthaelt 3 Transaktionen" echo "der block wird mit der pruefsumme, mittels fletcher's checksum" echo "$(($RANDOM % maxchecksum))" echo "Versehen" echo "und mit dem caesar schluessel" maxcaesar=256 i=0 CAESAR=() while [ $i -lt 5 ] do CAESAR+=($((RANDOM % maxcaesar))) i=$(($i+1)) done i=0 s="" while [ $i -lt 5 ] do s="$s ${CAESAR[$i]}" i=$(($i+1)) done echo "$s verschluesselt" echo "hier die vom computer ausgerechneten werte" DEALERSALESPERSONcrypt+=() DEALERBUYERcrypt+=() GOODScrypt+=() AMOUNTcrypt+=() i=0 j=0 k=0 while [ $i -lt 21 ] do DEALERSALESPERSONcrypt+=($((${DEALERSALESPERSON[$i]} + ${CAESAR[$k]}))) k=$((($k+1) % 5)) DEALERBUYERcrypt+=($((${DEALERBUYER[$i]} + ${CAESAR[$k]}))) k=$((($k+1) % 5)) GOODScrypt+=($((${GOODS[$i]} + ${CAESAR[$k]}))) k=$((($k+1) % 5)) AMOUNTcrypt+=($((${AMOUNT[$i]} + ${CAESAR[$k]}))) k=$((($k+1) % 5)) i=$(($i+1)) done |