So 27. Apr 01:54:38 CEST 2025 - blockchainsupposition20250426 sh


 
#!/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