| @ -1,4 +1,28 @@ | |||||
| [ | [ | ||||
| { | |||||
| "hash": "0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5", | |||||
| "height": 840000, | |||||
| "name": "HALVING_4", | |||||
| "desc": "Ce block marque le 4éme halving pour la blockchaîn" | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000002b7cf7652ce547d8b94e35e367f947e380677e3d8c05a", | |||||
| "height": 832405, | |||||
| "name": "ATH_60k_USD", | |||||
| "desc": "ATH 60K atteint au cours de ce bloc" | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000001ccb803261355809bc46e6e1488e2b6daa828db2b4dce", | |||||
| "height": 830706, | |||||
| "name": "NAVALNY_HAS_DIED", | |||||
| "desc": "Opposant russe Alexei Navalny, mort en detention le 16 fevrier 2024 a 47 ans" | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000002a3983effd69337ddd75f5862715f6c9b36e0bfa3368", | |||||
| "height": 828524, | |||||
| "name": "REFONTE2024", | |||||
| "desc": "Janvier 2024, refonte su site frontend" | |||||
| }, | |||||
| { | { | ||||
| "hash": "00000000000000000000a63021c17572b66507c6b6623ccf4e780272d19b2528", | "hash": "00000000000000000000a63021c17572b66507c6b6623ccf4e780272d19b2528", | ||||
| "height": 824513, | "height": 824513, | ||||
| @ -233,6 +257,13 @@ | |||||
| "name": "LUCIFER", | "name": "LUCIFER", | ||||
| "desc": null | "desc": null | ||||
| }, | }, | ||||
| { | |||||
| "hash": "00000000054aad44afc89e1f4e0ee9561568629273df16153e425a2eb9cbbcb9", | |||||
| "height": 261, | |||||
| "name": "K_SWITZER", | |||||
| "desc": "Katherine SWITZER ran the BOSTON MARATHON" | |||||
| }, | |||||
| { | { | ||||
| "hash": "00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee", | "hash": "00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee", | ||||
| "height": 170, | "height": 170, | ||||
| @ -0,0 +1,266 @@ | |||||
| [ | |||||
| { | |||||
| "hash": "0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5", | |||||
| "height": 840000, | |||||
| "name": "HALVING_4", | |||||
| "desc": "Ce block marque le 4éme halving pour la blockchaîn" | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000000a63021c17572b66507c6b6623ccf4e780272d19b2528", | |||||
| "height": 824513, | |||||
| "name": "BURN2024", | |||||
| "desc": "Le 03 janvier 2024, Binance a envoyé 26,9 BTC (valorisés 1,2 millions de dollars) sur un Genesis Wallet" | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000001e6d99b42a2fe649591e7b97b1d4327e2bc3ade53d6d7", | |||||
| "height": 772923, | |||||
| "name": "BERNIQUE", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000001f5beb60d9ca47adf18db5136b558379ed533fc9f6c85", | |||||
| "height": 753335, | |||||
| "name": "ELISABETH_2_HAS_DIED", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000065676a19a2dfba0171b592d52f5ea7db54d45bb386400", | |||||
| "height": 724697, | |||||
| "name": "UKRAINE", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000031ec514b89bdac2c4786bbcc3a1a0acd1206f82181901", | |||||
| "height": 718720, | |||||
| "name": "POITIERS", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000000e55da58b378880e797f9f3e96811d3e64a2f801eed9a", | |||||
| "height": 700700, | |||||
| "name": "BAB_BRUXELLES", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000000bfade5b2979c3d47c6dd6a1e8ddf53380e8c3d736ce0", | |||||
| "height": 699382, | |||||
| "name": "SALVADOR", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000000b7b8574bc6fd285825ec2dbcbeca149121fc05b0c828c", | |||||
| "height": 666666, | |||||
| "name": "MORNING_STAR", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000070daa5861fe1e7064ef8007825431229c6c1cab2c766f", | |||||
| "height": 654364, | |||||
| "name": "WHALE20201026", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000005c0f74e8b00c3961d6dfbf32936edeaa300015949f3c4", | |||||
| "height": 632676, | |||||
| "name": "2020JUMP10000", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000000f811e171eee52157e9a95963140e62fa83610f23ea7e", | |||||
| "height": 631058, | |||||
| "name": "DORMEUR", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000024bead8df69990852c202db0e0097c1a12ea637d7e96d", | |||||
| "height": 630000, | |||||
| "name": "HALVING_3", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000001186079bbf9a5d945231236135af7a766bd34d814e7319", | |||||
| "height": 628710, | |||||
| "name": "RIP_STEEVE", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000099457d2aeb2b7fc8ad8adb1490814cb674dc5767ae9b9", | |||||
| "height": 622453, | |||||
| "name": "COVID19", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000001a3c68111789a6c2cc76f1209d1dae63b05460053eb2b", | |||||
| "height": 619165, | |||||
| "name": "EQUILIBRE202002", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000000f2306f08e8f34872a24dfaad3423801a91ee1626e9ea4", | |||||
| "height": 618986, | |||||
| "name": "SOPHIA202002", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000001085a869441fa2aa77f149a887af0ce59846ef51da6e4c", | |||||
| "height": 616193, | |||||
| "name": "EQUILIBRE", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000000b05f877e6e49b380f4f78b3cfb605b67439f825dba197", | |||||
| "height": 613470, | |||||
| "name": "2020JUMP9000", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000009e8fb4ac719a362c1c4e3df439740069ee58e2a713258", | |||||
| "height": 612149, | |||||
| "name": "DEMISSION20200110", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000051f84a7a1d0f5b2ddaf5682cbec5f7acb2bf5fa339725", | |||||
| "height": 593879, | |||||
| "name": "GOLGOTH201909", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000014fcb29e6e3b0ead3bd2e307d7f619a935f1d5323e9013", | |||||
| "height": 593468, | |||||
| "name": "WHALE201909", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000000f9f2dadfb8f312572183272802cbfcc4ff95b4ee6777d", | |||||
| "height": 545911, | |||||
| "name": "WHALE201810", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000021e800c1e8df51b22c1588e5a624bea17e9faa34b2dc4a", | |||||
| "height": 528249, | |||||
| "name": "BLOCK21E800", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000000fe6d521a187a5523d5cef6f6c178923ff82ffe5a0f372", | |||||
| "height": 506734, | |||||
| "name": "HURRICANE_1", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000004b27f9ee7ba33d6f048f684aaeb0eea4befd80f1701126", | |||||
| "height": 501726, | |||||
| "name": "NO_REWARD", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000000cbeff0b533f8e1189cf09dfbebf57a8ebe349362811b80", | |||||
| "height": 481823, | |||||
| "name": "SEGWIT", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000012e6060980c6475a9a8e62a1bf44b76c5d51f707d54522c", | |||||
| "height": 479808, | |||||
| "name": "SEGWIT_LOCK", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000000000000019f112ec0a9982926f1258cdcc558dd7c3b7e5dc7fa148", | |||||
| "height": 478559, | |||||
| "name": "BCC", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000000015411ca4b35f7b48ecab015b14de5627b647e262ba0ec40", | |||||
| "height": 477120, | |||||
| "name": "BIP_91_LOCK", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000000002cce816c0ab2c5c269cb081896b7dcb34b8422d6b74ffa1", | |||||
| "height": 420000, | |||||
| "name": "HALVING_2", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "0000000000000001bc7156dd1183c87859b326affa3a5cdd157e809537f0b284", | |||||
| "height": 270953, | |||||
| "name": "WHALE201311", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e", | |||||
| "height": 210000, | |||||
| "name": "HALVING_1", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000000041c718cd2fa4270ab80c917bb94caa79c84b417b7924a867a68", | |||||
| "height": 196883, | |||||
| "name": "JOHN_CONWAY", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000152340ca42227603908689183edc47355204e7aca59383b0aaac1fd8", | |||||
| "height": 57043, | |||||
| "name": "PIZZA", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000132fbe8314fc571c0be60b31ccd461c9ee85f42bde8c6d160a9dacc0", | |||||
| "height": 24835, | |||||
| "name": "FIRST_USD_TX", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000a73e64735a2b75c97ea674950a9018da1420d01328a918c9ff9852c", | |||||
| "height": 5637, | |||||
| "name": "TOPISTO", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000a70ba4a405c67310757606dd955cf1a3a8e5c042335d78394ea6cb67", | |||||
| "height": 3654, | |||||
| "name": "DORMEUR_ORIGINE", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000008bf44a528a09d203203a6a97c165cf53a92ecc27aed0b49b86a19564", | |||||
| "height": 1337, | |||||
| "name": "LEET", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000fc5b3c76f27f810ee775e480ae7fd604fd196b2d8da4257fcd39f4f9", | |||||
| "height": 666, | |||||
| "name": "LUCIFER", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000d1145790a8694403d4063f323d499e655c83426834d4ce2f8dd4a2ee", | |||||
| "height": 170, | |||||
| "name": "FIRST_TX", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000a2886c95400fd3b263b9920af80b118b28fee5d2a162a18e4d9d8b2f", | |||||
| "height": 78, | |||||
| "name": "HAL_FINLEY", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "00000000314e90489514c787d615cea50003af2023796ccdd085b6bcc1fa28f5", | |||||
| "height": 42, | |||||
| "name": "THE_ANSWER", | |||||
| "desc": null | |||||
| }, | |||||
| { | |||||
| "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", | |||||
| "height": 0, | |||||
| "name": "GENESIS", | |||||
| "desc": null | |||||
| } | |||||
| ] | |||||
| @ -0,0 +1,75 @@ | |||||
| <?php | |||||
| function DrawBlock($the_block, $vImage, $parametres) | |||||
| { | |||||
| // valeurs par défaut | |||||
| $type = 1; | |||||
| // Ces variables vont permettre de caler les lignes | |||||
| // dans la zone de dessin en se laissant des marges | |||||
| // en haut et en bas | |||||
| $somme = 0; | |||||
| $min =-1; | |||||
| $max = 0; | |||||
| $marge_x = 10; | |||||
| $marge_y = 10; | |||||
| $facteur_max = 2.5; | |||||
| $alpha = 0; | |||||
| // Détermine si on dessine les tx, les fees ou la récompense | |||||
| if (isset($parametres['type'])) $type = $parametres['type']; | |||||
| // Paramètres de dessin | |||||
| if (isset($parametres['x'])) $x = $parametres['x']; | |||||
| if (isset($parametres['y'])) $y = $parametres['y']; | |||||
| if (isset($parametres['width'])) $width = $parametres['width']; | |||||
| if (isset($parametres['height'])) $height = $parametres['height']; | |||||
| if (isset($parametres['font_color'])) $vFgColor = $parametres['font_color']; | |||||
| if (isset($parametres['background_color'])) $vBgColor = $parametres['background_color']; | |||||
| if (isset($parametres['font_RGB'])) $vFgRGB = $parametres['font_RGB']; | |||||
| if (isset($parametres['background_RGB'])) $vBgRGB = $parametres['background_RGB']; | |||||
| // Remplir le fond | |||||
| imagefilledrectangle($vImage, $x+($marge_x/2), $y+($marge_y/2), $x+$width-+($marge_x/2), $y+$height-+($marge_y/2), $vFgColor); | |||||
| // Dégradé de 360 couleurs entre la couleur de dessin et le blanc | |||||
| $nbColor = 360; | |||||
| $vColor = getGDcolorGradientArray($vImage, $nbColor, $vBgRGB, $vFgRGB, $alpha); | |||||
| // Récup des données | |||||
| $data = blockchain::getTransactionData($the_block, $type); | |||||
| $xc = $x + ($width / 2); | |||||
| $yc = $y + ($height / 2); | |||||
| $mini=$height/6.4; | |||||
| $maxi=$height/3.2; | |||||
| $angle=0; | |||||
| $ppas=2000.0; | |||||
| $pas=360.0/TX_HASH_LEN; | |||||
| $pas /= $ppas; | |||||
| for($i=0;$i<TX_HASH_LEN;$i++) | |||||
| { | |||||
| $valeur = hexdec($the_block->hash[$i]); | |||||
| $r = $mini; | |||||
| $r += ($maxi*(($valeur+1.0)/16.0)); | |||||
| $xi = $xc + $r*cos(deg2rad($angle)); | |||||
| $yi = $yc + $r*sin(deg2rad($angle)); | |||||
| for($ii=0;$ii<$ppas;$ii++) | |||||
| { | |||||
| $xi = $xc + $r*cos(deg2rad($angle)); | |||||
| $yi = $yc + $r*sin(deg2rad($angle)); | |||||
| imageline($vImage, $xc, $yc, $xi, $yi, $vColor[abs(floor(180-$angle))]->color); | |||||
| $angle += $pas; | |||||
| } | |||||
| } | |||||
| } | |||||
| ?> | |||||
| @ -0,0 +1,67 @@ | |||||
| #!/bin/bash | |||||
| lescript=`basename $0 .sh` | |||||
| # | |||||
| # TOOLS | |||||
| # | |||||
| function debug | |||||
| { | |||||
| if [ -f $FLAG_PATH/debug ] | |||||
| then | |||||
| echo $1 | |||||
| fi | |||||
| } | |||||
| # | |||||
| # PARAMETRES PAR FICHIER FLAGS | |||||
| # | |||||
| if [ -f $FLAG_PATH/no_blocks ] | |||||
| then | |||||
| debug "No blocks" | |||||
| fi | |||||
| BLOCK=$1 | |||||
| if [ -z "$BLOCK" ] | |||||
| then | |||||
| BLOCK=`grep LAST $DATA_PATH/block_list.txt | awk '{print $2}'` | |||||
| fi | |||||
| echo $BLOCK | |||||
| cd $APPS_PATH/info | |||||
| infos=`php robot.php $BLOCK` | |||||
| HEIGHT=`echo $infos | awk '{print $1}'` | |||||
| TIMETS=`echo $infos | awk '{print $2}'` | |||||
| NBTX=`echo $infos | awk '{print $3}'` | |||||
| NONCE=`echo $infos | awk '{print $4}'` | |||||
| PREV=`echo $infos | awk '{print $5}'` | |||||
| # | |||||
| # TEST DU FLAG | |||||
| # | |||||
| flag=$FLAG_PATH/bot_${lescript}_${BLOCK}.flag | |||||
| if [ -f $flag ] | |||||
| then | |||||
| debug "${lescript}_${BLOCK} already done" | |||||
| fi | |||||
| touch $flag | |||||
| LISTE_METHODE=`ls $APPS_PATH/methode2 | grep -v robot | shuf` | |||||
| cd $APPS_PATH/methode2 | |||||
| for METHODE in $LISTE_METHODE | |||||
| do | |||||
| if [ ! -d $DATA_PATH/$METHODE ] | |||||
| then | |||||
| mkdir -p $DATA_PATH/$METHODE | |||||
| fi | |||||
| echo $BLOCK $NAME $METHODE | |||||
| if [ ! -f $DATA_PATH/$METHODE/$BLOCK.png ] | |||||
| then | |||||
| php robot.php $METHODE $BLOCK $((RANDOM % 6)) $2 | |||||
| cp $DATA_PATH/last/$BLOCK.png $DATA_PATH/$METHODE/$BLOCK.png | |||||
| cp $DATA_PATH/last/$BLOCK.png $DATA_PATH/hasard/$BLOCK.png | |||||
| fi | |||||
| done | |||||
| cp $DATA_PATH/last/$BLOCK.png $DATA_PATH/nonce/$BLOCK.png | |||||
| @ -0,0 +1,23 @@ | |||||
| #!/bin/bash | |||||
| while IFS='' read -r line || [[ -n "$line" ]]; do | |||||
| HASH=`echo $line | awk '{print $1}'` | |||||
| HEIGHT=`echo $line | awk '{print $2}'` | |||||
| if [ ! -f $DATA_PATH/json/$HASH.zip ]; then | |||||
| cd $APPS_PATH/info | |||||
| infos=`php robot.php $HASH` | |||||
| NBTX=`echo $infos | awk '{print $3}'` | |||||
| if [ $NBTX -eq 1 ]; then | |||||
| echo draw bloc $HEIGHT | |||||
| echo LAST $HASH $HEIGHT $NTX >> $DATA_PATH/emptybot/all_empty_blocks.txt | |||||
| source $APPS_PATH/scripts/block2.sh $HASH | |||||
| rm $DATA_PATH/json/$HASH.zip | |||||
| fi | |||||
| fi | |||||
| done < $1 | |||||
| sort -n $DATA_PATH/emptybot/all_empty_blocks.txt | |||||
| @ -0,0 +1,96 @@ | |||||
| #!/bin/bash | |||||
| lescript=`basename $0 .sh` | |||||
| # | |||||
| # TOOLS | |||||
| # | |||||
| function debug | |||||
| { | |||||
| if [ -f $FLAG_PATH/debug ] | |||||
| then | |||||
| echo $1 | |||||
| fi | |||||
| } | |||||
| # | |||||
| # PARAMETRES PAR FICHIER FLAGS | |||||
| # | |||||
| if [ -f $FLAG_PATH/no_blocks ] | |||||
| then | |||||
| debug "No blocks" | |||||
| fi | |||||
| BLOCK0=$1 | |||||
| if [ -z "$BLOCK" ] | |||||
| then | |||||
| BLOCK0=`grep LAST $DATA_PATH/block_list.txt | awk '{print $2}'` | |||||
| fi | |||||
| echo $BLOCK0 | |||||
| pushd $APPS_PATH/info | |||||
| infos=`php robot.php $BLOCK0` | |||||
| HEIGHT=`echo $infos | awk '{print $1}'` | |||||
| TIMETS=`echo $infos | awk '{print $2}'` | |||||
| NBTX=`echo $infos | awk '{print $3}'` | |||||
| NONCE=`echo $infos | awk '{print $4}'` | |||||
| PREV=`echo $infos | awk '{print $5}'` | |||||
| popd | |||||
| # | |||||
| # TEST DU FLAG | |||||
| # | |||||
| flag=$FLAG_PATH/bot_${lescript}_${BLOCK0}.flag | |||||
| if [ -f $flag ] | |||||
| then | |||||
| debug "${lescript}_${BLOCK0} already done" | |||||
| fi | |||||
| touch $flag | |||||
| if [ -f $DATA_PATH/nonce/$BLOCK0.png ] | |||||
| then | |||||
| echo COMPUTE IMAGE FOR $BLOCK0 | |||||
| pushd $APPS_PATH >> /dev/null | |||||
| ./lancer2.sh block2 $BLOCK0 | |||||
| popd >> /dev/null | |||||
| fi | |||||
| echo $DATA_PATH/nonce/$BLOCK0.png | |||||
| BLOCK1=$PREV | |||||
| pushd $APPS_PATH/info >> /dev/null | |||||
| infos=`php robot.php $BLOCK1` | |||||
| HEIGHT=`echo $infos | awk '{print $1}'` | |||||
| TIMETS=`echo $infos | awk '{print $2}'` | |||||
| NBTX=`echo $infos | awk '{print $3}'` | |||||
| NONCE=`echo $infos | awk '{print $4}'` | |||||
| PREV=`echo $infos | awk '{print $5}'` | |||||
| popd >> /dev/null | |||||
| if [ -f $DATA_PATH/nonce/$BLOCK1.png ] | |||||
| then | |||||
| echo COMPUTE IMAGE FOR $BLOCK1 | |||||
| pushd $APPS_PATH >> /dev/null | |||||
| ./lancer2.sh block2 $BLOCK1 | |||||
| popd >> /dev/null | |||||
| fi | |||||
| echo $DATA_PATH/nonce/$BLOCK1.png | |||||
| BLOCK2=$PREV | |||||
| pushd $APPS_PATH/info >> /dev/null | |||||
| infos=`php robot.php $BLOCK2` | |||||
| HEIGHT=`echo $infos | awk '{print $1}'` | |||||
| TIMETS=`echo $infos | awk '{print $2}'` | |||||
| NBTX=`echo $infos | awk '{print $3}'` | |||||
| NONCE=`echo $infos | awk '{print $4}'` | |||||
| PREV=`echo $infos | awk '{print $5}'` | |||||
| popd >> /dev/null | |||||
| if [ -f $DATA_PATH/nonce/$BLOCK2.png ] | |||||
| then | |||||
| echo COMPUTE IMAGE FOR $BLOCK2 | |||||
| pushd $APPS_PATH >> /dev/null | |||||
| ./lancer2.sh block2 $BLOCK2 | |||||
| popd >> /dev/null | |||||
| fi | |||||
| echo $DATA_PATH/nonce/$BLOCK2.png | |||||
| pushd $APPS_PATH/triptyque >> /dev/null | |||||
| php robot.php $BLOCK0 $BLOCK1 $BLOCK2 | |||||
| popd >> /dev/null | |||||
| @ -0,0 +1,86 @@ | |||||
| <?php | |||||
| // --- | |||||
| // --- La config globale | |||||
| // --- | |||||
| require_once '../global/inc/config.php'; | |||||
| // --- | |||||
| // --- External dependances | |||||
| // --- | |||||
| require TOPISTO_PATH.'/ressources/vendor/autoload.php'; | |||||
| require_once '../global/inc/colors.php'; | |||||
| require_once '../global/inc/cubic.php'; | |||||
| // --- | |||||
| // --- Internal dependances | |||||
| // --- | |||||
| require_once APP_PATH.'/blockchain/inc/block.php'; | |||||
| // --- | |||||
| // --- Par défaut on cherche le dernier block | |||||
| // --- Le cas échéant, on cherche block passé en argument | |||||
| // --- | |||||
| $block_hash0 = 'LAST'; | |||||
| if (isset($argv[1])) $block_hash0 = $argv[1]; | |||||
| $block_hash1 = 'LAST'; | |||||
| if (isset($argv[2])) $block_hash1 = $argv[2]; | |||||
| $block_hash2 = 'LAST'; | |||||
| if (isset($argv[3])) $block_hash2 = $argv[3]; | |||||
| $the_block = blockchain::getBlockWithHash($block_hash0); | |||||
| if ($the_block === FALSE) die(); | |||||
| $taille=1; | |||||
| $bandeau = 50; | |||||
| $marge = 25; | |||||
| $text_border = 20; | |||||
| $width = GRAPH_WIDTH * $taille; | |||||
| $height = GRAPH_HEIGHT * $taille; | |||||
| $couleur = -1; // Au hasard | |||||
| // Pour que l'image simple ait les proportions que l'image full | |||||
| $width = $marge + ($width*2) + (2*$text_border); | |||||
| $height = $marge + ($height*2); | |||||
| // création d'une image plus haute pour inclure bandeaux haut et bas | |||||
| $img_w = $width; | |||||
| $img_h = ($height+(2*$bandeau)); | |||||
| $decal=5; | |||||
| $y=0-($img_h/2); | |||||
| $img = imagecreatetruecolor($img_w+10, ($img_h*2)-($decal*2)); | |||||
| // on met une couleur transparente sur le fond | |||||
| //$white = imagecolorallocate($img, 254, 254, 254); | |||||
| //imagecolortransparent($img, $white); | |||||
| //imagefilledrectangle($img, 0, 0, $img_w, ($img_h*3)-($decal*2), $white); | |||||
| $img_block=imagecreatefrompng(DATA_PATH.'/nonce/'.$block_hash0.'.png'); | |||||
| imagecopy($img, $img_block,5,$y,0,0,$img_w, $img_w); | |||||
| imagedestroy($img_block); | |||||
| $y+=$img_h - $decal; | |||||
| $img_block=imagecreatefrompng(DATA_PATH.'/nonce/'.$block_hash1.'.png'); | |||||
| imagecopy($img, $img_block,5,$y,0,0,$img_w, $img_w); | |||||
| imagedestroy($img_block); | |||||
| $y+=$img_h - $decal; | |||||
| $img_block=imagecreatefrompng(DATA_PATH.'/nonce/'.$block_hash2.'.png'); | |||||
| imagecopy($img, $img_block,5,$y,0,0,$img_w, $img_w); | |||||
| imagedestroy($img_block); | |||||
| // Draw a white rectangle | |||||
| $black = imagecolorallocate($img, 0, 0, 0); | |||||
| imagefilledrectangle($img, 0, 0, $img_w+10, 5, $black); | |||||
| imagefilledrectangle($img, 0, ($img_h*2)-($decal*2)-5, $img_w+10, ($img_h*2)-($decal*2), $black); | |||||
| imagepng($img, DATA_PATH.'/triptyque/'.$block_hash1.'.png'); | |||||
| imagedestroy($img); | |||||
| ?> | |||||