aka
aka
by peers at httpdot.net, 2019, gnu gplv3
embedded system running a custom copyleft free/libre software as a work of art on a quest for becoming an artist by duplicating and appropriating itself as a work of art by creating random data of its own size and displaying it for 15 seconds as a candidate for an artwork while calculating and comparing the hash of that random data to its own hash and continues this process until it finds a match as a proof of its duplicate as an appropriated work of art as a proof-of-work by the artist.
https://httpdot.net/peers/proof-of-work-of-art-ist/
custom software is written as a bash script by bager akbay, 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
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.
proof-of-work-of-art-ist first calculates its own size and sha-256 hash and then creates a file named proof-of-work in its working directory by writing random data of its own size to that file using dd utility and /dev/urandom special file. it calculates sha-256 hash of the random data in the file proof-of-work and writes the random data to virtual console displaying it for 15 seconds. if hash of the random data does not match that of itself, it clears the command-line interface, waits for 5 seconds and overwrites the random data in the file proof-of-work with random data again and continues the process until hash of proof-of-work matches that of itself and becomes an artwork. because it means that the work and proof-of-work should be the same and that the work has created a duplicate of itself, which is an artwork, by writing random data, which has a probability of 1 / 2³⁰¹⁷⁸⁴, since file size of proof-of-work-of-art-ist is 301784 bits. 2³⁰¹⁷⁸⁴ being a 90847-digit decimal number, it is infeasible for the work to succeed and become an artist by appropriating itself but it is not impossible and proof-of-work-of-art-ist keeps working on its own quest as long as it is turned on.
proof-of-work-of-art-ist 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.
download the work: custom free/libre software written as a bash script (37.7kB)
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 (486bytes)
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 documentationof the work
webm, vp9, lossless compressed-vbr488bps, 1080p25, no audio, 52’’, 3.24MB
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.
the work continuously outputs random data on shell and it is possible that some may be interpreted as commands or key combinations which can put the system in an abnormal state. in such a case, you may try to quit the program by pressing key combinations ctrl+c multiple times. if virtual console is left in an abnormal state, use the command
reset
to restore it.
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 jacksum website
or, install it using your distro’s package manager. for debian-based distributions:
sudo apt-get install jacksum
-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. a terminal emulator window within GUI, such as gnome terminal, is not preferred to run this work but, if you still want to use it, and make it full screen, also disabling the menubar.
-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/proof-of-work-of-art-ist/proof-of-work-of-art-ist.sh \
&& sudo chmod +x proof-of-work-of-art-ist.sh \
&& ./proof-of-work-of-art-ist.sh
-press key combination ctrl+c to interrupt the work and use the command
exit
to exit virtual console where you run the work.
for the installation at the exhibition blockchain is... / ...for nothing terminus 12x24 monospace bitmap console font is used and virtual console is displayed on a 1920x1080 pixel projection. feel free to adjust the font and the resolution as you wish. virtual console font can be adjusted using:
sudo dpkg-reconfigure console-setup
This algorithm searches for something equal to itself in a cryptographic way which may include itself.
set myHash to the hash of this algorithm.
FOREVER
Create something which is the same size of this algorithm.
Set hashOfSomething to the hash of something.
Print hashOfSomething
IF hashOfSomething is equal to myHash
Wait FOREVER
END FOREVER
#!/bin/bash
# "a work of art on a quest for becoming an artist by appropriating itself as a work of art by relying on its own proof and proof-of-work for the proof of originality and authenticity of its duplicate as an appropriated work of art as the proof-of-work by the artist" aka "proof-of-work-of-art-ist"
# by peers at httpdot.net, 2019, gnu gplv3
#
# embedded system running a custom copyleft free/libre software as a work of art on a quest for becoming an artist by duplicating and appropriating itself as a work of art by creating random data of its own size and displaying it for 15 seconds as a candidate for an artwork while calculating and comparing the hash of that random data to its own hash and it continues this process until it finds a match as a proof of its duplicate as an appropriated work of art as a proof-of-work by the artist.
# https://httpdot.net/peers/proof-of-work-of-art-ist/
#
# custom software is written as a bash script by bager akbay, 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
FILENAME=${0}
FILESIZE=$(stat -c%s "$FILENAME")
myHash=$(jacksum -a SHA256 $FILENAME | cut -d' ' -f1)
clear
sleep 2
if [ -f "proofWorkArt" ]
then
echo "$(cat proofWorkArt)"
sleep 99999999
else
while :
do
$(dd if=/dev/urandom of=proof-of-work bs=1 count=$FILESIZE status=none)
randomFileHash=$(jacksum -a SHA256 proof-of-work | cut -d' ' -f1)
clear
cat proof-of-work 1>/dev/tty 2>/dev/null
sleep 15
clear
sleep 3
if [ "$myHash" = "$randomFileHash" ]; then
cp random proofWorkArt
sleep 99999999
fi
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]
[...]
.
_GNUGPLv3Text_