the quest for finding something that is nothing, or, the study of what nothing is not

by peers at httpdot.net, 2019, gnu gplv3


embedded system running a custom copyleft free/libre software on a quest of for finding nothing by creating all possible values for a 256-bit of something one-by-one, which is a total of 115792089237316195423570985008687907853269984665640564039457584007913129639936 things, and calculating their sha-256 cryptographic hashes to compare them to that of nothing for finding a match and thus finding nothing; or otherwise proves what nothing is not when hash of something does not match that of nothing, and displays the results on a command-line interface as well as all this process of a second-preimage attack on sha-256 hash of nothing as a brute-force cryptographic attack. unless nothing is found before, the quest will last approximately 38526913870000000000000000000000000000000000000000000 years, when the work is not interrupted.
https://httpdot.net/peers/theQuestForFindingSomethingThatIsNothing/


custom software is written as a bash script by bager akbay and orhan 'aib' kavrakoglu, along with the pseudocode, and released as a copyleft free/libre software under gnu gplv3.
all programs and utilities executed by bash script are also free/libre software.
the embedded system powered by a gnu/linux operating system is also programmed by bager akbay.
commissioned by protocinema for the exhibition blockchain is... / ...for nothing with support from spot contemporary art projects, istanbul

screenshot,"the quest for finding something that is nothing, or, the study of what nothing is not", by peers at httpdot.net, 2019, gnu gplv3, https://httpdot.net/peers/theQuestForFindingSomethingThatIsNothing/ commissioned and presented by protocinema with support from spot contemporary art projects
about the work

refer to text peer on blockchain is... / ...for nothing exhibition by peers at httpdot.net by peer for more info and discussion of the work.


this work is exhibited in blockchain is... / ...for nothing exhibition by peers at httpdot.net.
nothing is possible, a publication for the exhibition, also aggregates all info and resources about the work, along with other works in the exhibition.

installation photo,"the quest for finding something that is nothing, or, the study of what nothing is not", by peers at httpdot.net, 2019, gnu gplv3, https://httpdot.net/peers/theQuestForFindingSomethingThatIsNothing/ commissioned and presented by protocinema with support from spot contemporary art projects
free/libre content

the quest for finding something that is nothing, or, the study of what nothing is not creates a file called "something" in its working directory when run for the first time and writes 256 bits of zeros in this file, which is read from the file and represented as the following hex value on command-line interface, following the text

creating something:   0000000000000000000000000000000000000000000000000000000000000000

then it calculates sha-256 hash of this value and prints it on command-line interface following the text

hashing something:

and calculates and prints sha-256 hash of nothing after printing the text

hash of nothing is:

next it prints

/comparing hashes:

and compares hash of something to that of nothing. if the hashes do not match, it prints

hashes don't match. that thing is not nothing. trying next thing

next, it increments the value in the file "something" and calculates hash of that value. this process continues until something that is nothing is found or the work is turned off. however, the work keeps working on its own quest from where it left off as soon as it is turned on, by reading the last created something from the file "something" and increment it. if the file "something" Is deleted or corrupted, it starts its quest from the beginning, by creating 256 bits of zeros.


the work creates something once in approximately 10,5 to 11 seconds. the approximate working hour the work has spent on its own quest at a given time can be calculated by converting the hex value of last created something to a decimal value and dividing it by 330 (3600 seconds / approx 10.91).


if the work is not interrupted and hash of none of the created things matches that of nothing, the work will be working on its quest for 38526913870000000000000000000000000000000000000000000 years.


the quest for finding something that is nothing, or, the study of what nothing is not is designed as a plug and play embedded system running a custom free/libre software, which you can directly connect to a display through hdmi connection and run. this is a free cultural work licensed under gnu gplv3. you are free to download the custom free/libre software running on the embedded system and run it on your computer, or build your own embedded system for running it. you are also encouraged to fork / build on / appropriate the work as a peer. full text of gnu gplv3 free software license is available at gnu website.

detail photo from installation,"the quest for finding something that is nothing, or, the study of what nothing is not", by peers at httpdot.net, 2019, gnu gplv3, https://httpdot.net/peers/theQuestForFindingSomethingThatIsNothing/ commissioned and presented by protocinema with support from spot contemporary art projects
downloads

download the work: custom free/libre software written as a bash script (38.8kB)
this bash script is also the source code of the work, which can be opened with any text editor. the source code is also included in this document under the corresponding section.


download pseudocode: plain text document for a brief explanation of the code in bash script (544bytes)
pseudocode is also included in this document under the corresponding section.
you can also download / fork the work from bager akbay’s github repository, who wrote the code in collaboration with orhan 'aib' kavrakoglu and also wrote the pseudocode


watch online / download screencast documentation of the work
webm, vp9, lossless compressed-vbr1133kbps, 1080p25, no audio, 5’55’’, 52.7MB

detail from screnshot,"the quest for finding something that is nothing, or, the study of what nothing is not", by peers at httpdot.net, 2019, gnu gplv3, https://httpdot.net/peers/theQuestForFindingSomethingThatIsNothing/ commissioned and presented by protocinema with support from spot contemporary art projects
instructions for running the work on a gnu/linux computer

running the work is as easy as running a shell script on a full screen command-line interface on a unix-like system for an experienced user. below are the detailed explanations for a less experienced user.


press crtl+alt+f3 for tty3 you need to have jacksum (Dipl.-Inf. (FH) Johann N. Loefflmann, 2006, gnu gplv2) installed on your system, which is executed by the bash script for hash calculations. check system requirements and installation instructions on jjacksum website

or, install it using your distro’s package manager. for debian-based distributions:

sudo apt-get install jacksum


-open a terminal emulator window within GUI, such as gnome terminal, and make it full screen, also disabling the menubar, or better, switch to a virtual console (press crtl+alt+f3 for tty3). you will need to use the commnad

exit

to exit virtual console and login back to graphical user interface). use your username and password to login and run a shell with command prompt.


-navigate to the directory where you want to download and run the bash script,
or, just use the current directory


-copy and paste the following command which will run three commands one after the other to download the bash script, make it executable and run it. you will need to enter your sudo password to make the file executable)

wget https://httpdot.net/peers/theQuestForFindingSomethingThatIsNothing/theQuestForFindingSomethingThatIsNothing.sh \
&& sudo chmod +x theQuestForFindingSomethingThatIsNothing.sh \
&& ./theQuestForFindingSomethingThatIsNothing.sh


-press key combination ctrl+c to interrupt the work and use the command

exit

to exit terminal emulator window or virtual console.


for the installation at the exhibition blockchain is... / ...for nothing terminus 6x12 monospace bitmap console font is used and virtual console is displayed on a 1920x1080 pixel projection by rotating the orientation of the display output and the projector itself vertically. if you want to rotate the display output, use:

sudo nano /boot/config.txt

to open and edit the file config.txt with nano and add the following in a new line:

display_hdmi_rotate=1

press key combinations ctrl+x followed by y and enter to save the file & exit nano.


the work prints 174 characters for each line and font size should be adjusted to fit each line in a single line on the command-line interface. terminus 11x22 fits on a 1920 pixel wide virtual console and the font can be adjusted using:

sudo dpkg-reconfigure console-setup

pseudocode
theQuestForFindingSomethingThatIsNothing.pseudo

This algorithm searches for something which is equal to nothing in a cryptograhpic way.

Set hashOfNothing to the hash of nothing.
Create something from zeros.

UNTIL hash of something is the same with hash of nothing, do:

		set hashOfSomething to the hash of something.
		increase something by one.

END UNTIL

Alert that something has been found
Create a flag so that we do not have to look for it anymore.
Stop

source code
theQuestForFindingSomethingThatIsNothing.sh

#!/bin/bash

#	"the quest for finding something that is nothing, or, the study of what nothing is not"
#	by peers at httpdot.net, 2019, gnu gplv3
#
#	embedded system running a custom copyleft free/libre software on a quest of for finding nothing by creating all possible values for a 256-bit of something one-by-one, which is a total of 115792089237316195423570985008687907853269984665640564039457584007913129639936 things, and calculating their sha-256 cryptographic hashes to compare them to that of nothing for finding a match and thus finding nothing; or otherwise proves what nothing is not when hash of something does not match that of nothing, and displays the results on a command-line interface as well as all this process of a second-preimage attack on sha-256 hash of nothing as a brute-force cryptographic attack. unless nothing is found, the quest will last approximately 38526913870000000000000000000000000000000000000000000 years, when the work is not interrupted. 
#	https://httpdot.net/peers/theQuestForFindingSomethingThatIsNothing/
#
#	custom software is written as a bash script by bager akbay and orhan 'aib' kavrakoglu, along with the pseudocode, and released as a copyleft free/libre software under gnu gplv3.
#	all programs and utilities executed by bash script are also free/libre software.
#	the embedded system powered by a gnu/linux operating system is also programmed by bager akbay.
#	this work is commissioned by protocinema for the exhibition "blockchain is... / ...for nothing" at aetopoulos, athens, february 2019
#
#	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 

hashofNothing=$(jacksum -a SHA256 -q '' | cut -d' ' -f1)

LINES=$(tput lines)
FILE="somethingThatIsNothing"
clear

if [ -f $FILE ]
then
	echo "already found"
	echo "$(xxd -p $FILE)"
	sleep 99999999
else

	while :
	do
sleep 2
		echo "\"the quest for finding something that is nothing, or, the study of what nothing is not\""
		echo -en "by peers at httpdot.net, 2019, gnu gplv3"
		echo ""
		echo ""
sleep 6

		for (( c=1; c<=$LINES-2; c++ ))
		do

			if [[ ! -s "something" ]]; then
				echo -en "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" > "something"
			fi

			somethingHex=$(xxd -p -c 80 something)
			somethingHash=$(jacksum -a SHA256 something | cut -d' ' -f1)


			echo -en "creating something:"
			sleep 2
			echo -en "   $somethingHex"
			sleep 0.1
			echo -en "   hashing something:"
			sleep 2
			echo "   $somethingHash"
			sleep 0.1
			echo -en "hash of nothing is:"
			sleep 2
			echo -en "   $hashofNothing"
			sleep 0.1
			echo -en "   /comparing hashes:"
			sleep 0.1

			if [ "$hashofNothing" = "$somethingHash" ]; then
				echo "found a file that matches"
				echo "$(cp something "$FILE")"
				sleep 99999999
			else
				echo -en "   hashes don't match."
				sleep 1.5
				echo -en " that thing is not nothing."
				sleep 2.5
				echo " trying next thing"
				sleep 0.1

				somethingHex=$(printf "%64s" $(bc <<< "obase=16; ibase=16; $(tr '[a-z]' '[A-Z]' <<< $somethingHex) + 1") | tr ' ' 0)
				xxd -r -p -c 80 <<< $somethingHex > something
			fi
		done

	done
fi

: <<'_GNUGPLv3Text_'
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. 
[...]
[full license text is included in the bash script but it is truncated here in the source code text since it is included at the end of this publication]
[...]    
.
_GNUGPLv