Leserartikel Alles über Bitcoin-Core & Installation vom Quellcode

Status
Für weitere Antworten geschlossen.
In diesem Artikel werden wir Bitcoin-Core vom Quellcode, auf einem Ubuntu GNU/Linux 64-Bit Betriebssystem installieren.
Diese Installationsanleitung gilt für alle Debian/Ubuntu ähnlichen Distributionen/Betriebssysteme; wie zum Beispiel: Kubuntu, Lubuntu, Xubuntu, Kali Linux, KDE neon, Linux Mint, Elementary OS, Zorin OS, und viele mehr.
Hauptsächlich unterscheidet sich die Installation durch den, von der jeweiligen Distribution verwendeten Paket-Manager. Ubuntu verwendet das „Advanced Package Tool (APT)“. Andere Distributionen verwenden andere Paket Manager, wie zum Beispiel der „pacman“ von „Arch Linux“, den auch „Manjaro“ verwendet.
Durch das abändern der Befehle, in die von der Distribution verwendeten Paket Manager, zum Beispiel:
Ubuntu Befehl:
Code:
apt-get install bitcoin-qt
Arch Linux Befehl:
Code:
pacman -S bitcoin-qt
Kann diese Anleitung auch für andere Distributionen verwendet werden. Der Name der Pakete kann jedoch abweichen.

Bitcoin-Core ist das Quellprogramm aller Bitcoin Programme
Als erstes sollte man verstehen wie das gesamte System funktioniert. Es ist auch ratsam zu wissen, wie und wo, das eigene Geld aufbewahrt wird.
Bitcoins funktionieren auf folgender weise: Jeder Benutzer muss sich zuerst eine Bitcoin-Wallet (Bitcoin-Geldbeutel) erstellen. In dieser Wallet werden dann die Bitcoins aufbewahrt. Am besten stellt man sich die Bitcoin-Wallet, wie ein Bankkonto vor und so sieht die Kontonummer aus:
E0476E4991D85CF0FA8A5678CA8312 (Frei erfunden, kann per Zufall jemandem gehören)
Diese Verkettung von Hexadezimal-Zahlen, nennt man einen String (Strang).
Im unterschied zu einem normalen Bankkonto, das den IBAN-String hat; hat eine Bitcoin-Wallet zwei Strings. Es gibt den Privaten und den öffentlichen String, der auch "Key" (Schlüssel) genannt wird (Public & Private Key). Der Private-Key ist der Zugang zum Konto; wer diesen Schlüssel hat, kann bezahlen. Der Public-Key ist wie die Kontonummer auf die Geld überwiesen werden kann.
Der Private-Key ist in der Blockchain aufgeschrieben und wie viel Geld zu einem bestimmten Key/String/Konto gehört.
Wie eine Blockchain im Detail funktioniert, werde ich hier nicht erklären, da gibt es genügend Quellen im Internet.
Das ganze ist selbstverständlich verschlüsselt und wenn man die Datei mit einem Text-Bearbeitungs-Programm (Texteditor) öffnet, sieh es so aus:

BlockChane.png


Mir diesen Informationen können wir nichts anfangen, aber wir haben jetzt ein Vorstellung davon, wie der Digitale Geldbeutel aussieht.
Manch einer dürfte sich jetzt denken, das eine Verschlüsselung allein nicht sicher genug ist und sein Geld diesem Geldbeutel nicht anvertrauen würde. Dem stimme ich zu.
Die Verschlüsselung lässt sich auch entschlüsseln und muss auch im Programm entschlüsselt werden, damit das Programm selbst mit diesen Daten arbeiten kann. Durch das entschlüsseln der Blockchain, werden die Inhalte der Wallets für Menschen lesbar/sichtbar; wie viele Bitcoins in einer Wallet enthalten sind und wie dies zustande kam.
Jeder Bitcoin hat einen Verlauf, von dem Moment an, an dem er generiert wurde, wird er in der Blockchain festgehalten; wann, wo, wie dieser Bitcoin entstanden ist und zu welcher Wallet er gehört. Welche Walet zu welcher Person gehört, ist in der Blockchain nicht eingetragen, da bei der Erstellung einer Wallet, keine Personenbezogenen Informationen angegeben werden müssen und auch nicht eingegeben werden können.

Blockchain.png


Das ist ein Screenshot der Blockchain auf meinem Computer. Zurzeit ist die BlockChain etwa 350GB groß und sie wächst mit jeder Transaktion (Überweisung).
Kauft man etwas mit einem Bitcoin, wird in der Blockchain aufgeschrieben, dass der Bitcoin einer anderen Wallet gut geschrieben wurde und in der anderen Wallet wird ebenso die Herkunft des Bitcoins aufgeschrieben. Es werden keine Informationen aus der Blockchain gelöscht, nur hinzugefügt; um Betrügereien zu verhindern.
Jetzt denkt sich manch einer, dass sich die Herkunft auch fälschen lässt und wenn die Blockchain auf dem eigenen Computer liegt, kann man ja die Informationen beliebig manipulieren. Was auch so ist.
Um zu verhindern das gefälschte Informationen, die Bitcoins beeinflussen, werden alle Informationen der Blockchain, mit allen Blockchains, auf allen Computern die Bitcoin-Core installiert haben, über das Internet verglichen. Somit sind die Blockchains auf allen Computern identisch. Wenn jetzt jemand die Blockchain auf seinem Computer manipuliert, wird dies sichtbar, da derjenige der einzige ist der eine abweichende Information hat und der Eintrag wird ungültig.
Nun gibt es schlaue Köpfe die das austricksen wollen, indem sie ganz viele Wallets auf ihren Computer erstellen, hunderte Wallets, und in all diese Wallts eintragen, dass eine bestimmte Wallet, einen bestimmten Wert/Inhalt besitzt. Jetzt überprüft Bitcoin-Core dies Information und stellt fest, das diese eine falsche Information ist; weil nicht genügend Quellen in der Blockchains die gleich Information enthalten; aber auch der Hash passt nicht.
Andere versuchen das System auf eine andere Art auszutricksen, in dem sie Online-Bitcoin-Wallets anbieten. Eine Online Wallet ist nichts weiter, als ein Web-Server (Computer), mit einer Internetseite, über die sich jedermann Online registrieren kann und über eine Webseite, Bitcoin-Core, der auf diesen Server installiert ist, eine Online-Wallet einrichten kann. Das tolle daran ist, wenn ein Hacker so einen Service einrichtet, die gesamten Informationen, die ein HaCkEr benötigt um eine Wallet zu hacken, bereits auf seinem Computer liegen. Nun kann der Hacker in allen Walets, die sich auf seinem Computer befinden, einer bestimmten Wallet, einen bestimmten Wert zuschieben und sich so bereichern.

Bitcoin-Map.png


Das Bitcoin-System ist dezentral aufgebaut.
Sollten die Online-Bitcoin-Wallets Anbieter den Markt übernehmen, worauf sie dank der Unwissenheit und Ignoranz der Benutzer, gute Chancen haben, ist der Bitcoin nichts mehr Wert.
Es heißt, das über 50% der vorhandenen Wallets, einen bestimmten Inhalt haben müssen, damit dieser vom System als echt anerkannt wird. Also muss der Hacker irgendwie dafür sorgen, das 50% der Walet Besitzer, bei ihm eine Wallet einrichten. Das ist einer der Gründe warum es so viele kostenlose Bitcoin-Wallet Anbieter gibt. Server und der Unterhalt von Servern, Webseite, Kundenservice, Rechtsabteilung und so weiter, kosten viel Geld; wie finanzieren sich diese Kostenlosen Dienste?
Ein Weiterer Grund warum es diese Online-Bitcoin-Wallets gibt, ist die Bitcoin Anonymität zu durchbrechen. Jeder der sich Online eine Wallet einrichtet, muss sich registrieren und seine IP-Adresse wird auch festgehalten. Somit ist die Wallet mit einer bestimmten Person verbunden und alle Transaktionen dieser Wallet, sind dieser Person zugeordnet; was den Zweck der Bitcoins, als anonyme Währung, unbrauchbar macht.
Deswegen sollte jeder der Bitcoins benutzen will, sich Bitcoin-Core auf seinem eigenem Computer installieren; am besten noch Tor dazu.
Das Kaufen von Bitcoins ist dabei die Achillesferse; beim kauf wird meistens das Geld vom eigen Bankkonto, zu einem anderen geschickt und gegen Bitcoins getaucht. Dabei ist der Käufer nur so anonym, wie es die Banken und Verkäufer zulassen.


Artikel Erweiterung
Ich habe die Funktionsweise von Bitcons nicht ausreichend erklärt und möchte dies nachholen.

Stell dir vor, du sitzt an einem Tisch mit drei Freunden und ihr möchtet Poker spielen, habt aber kein Bar Geld und auch kein Chips, also nimmt ihr Papier und Stift, um den Kontostand jedes Spielers aufzuschreiben.
Spieler 4 ist die Bank und führt die Kontostände.
Die erste runde beginnt und alle Spieler legen 10 Credits in den Pott. Spieler 2 gewinnt die Runde und bekommt den Pott im wert von 40 Credits.

BitCoinPoker-1.png

Dieser Zettel symbolisiert die Bitcoin Chane

Spieler 4 hat eine Idee wie er betrügen könnte. Da Spieler 4 die Bank ist und die Kontostände führt, denkt er sich „Ich könnte doch einfach meine Kontostand verändern.“ also schreibt er sich ein neues Guthaben auf, anstatt 90 Credits, macht er 100 Credits daraus.
Einer der Spieler bemerkt, das Spieler 4 betrügt und verlangt ein Änderung des Systems, von einem zentralen zu einem dezentralen System.
Das Problem bei einem zentralen System ist, das derjenige der die Buchführung macht, die Bücher manipulieren kann. Bei eine dezentralen System, ist das ohne weiteres nicht möglich.

Die Funktionsweise des dezentralen Systems
Anstatt das nur ein Spieler Buch führt, führen alle Spieler Buch. Jeder Spieler schreibt seine eigenen und den Kontostand der anderen Spieler auf seinem eigenen Zettel auf, somit haben alle Spieler die gleichen Daten auf ihren Zettel stehne, sollte einer der Spieler betrügen und sein Guthaben verändern, können die Daten von allen Spielern miteinander abgeglichen werden. Wenn einer der vier Spieler auf seinem Zettel zum Beispiel anstatt 90 Credits plötzlich 100 Credits sthen hat, legt man einfach alle zettel auf den Tisch und vergleicht die Daten auf allen Zetteln. Dabei wird festgestellt das die Daten auf nur einem von vier Zetteln anders sind als auf den anderen drei. Drei Zetel geben den Kontostand von Spielre 4 als 90 Credits an und der Zettel von Spieler 4 gibt 100 Crdits an. Somit ist klar das Spieler 4 seine Kontostand manipuliert hat und kann korrigiert werden.
Jedoch kann auch bei einem dezentralen System betrogen werden. Sagen wir es spielen 100 Spieler und 51 Spieler verabreden einen Betrug, sie ändern all die Daten von Spieler 4, von 90 zu 100 Credits. Was passiert in diesem Fall?
Die Mehrheit gewinnt und der Betrug wird zum Fakt, Spieler 4 behält 100 Credits und alle anderen müssen ihre Daten auf dem Zettel anpassen.
Bei Bitcoins passiert das automatisch im hintergehend und kaum jemand bemerkt etwas davon.

Wie ist es möglich Bitcoins zu manipulieren?
Wenn du dir Bitcoin-Core auf deinem Computer installierst, wirst du feststellen, das du dir fast unbegrenzt viele Wallets anlegen kannst, die menge der Wallets, die in der Datenbank angelegt werden kann, ist nicht bekannt; auf jeden Fall mehr, als es Menschen auf der Welt gibt und das genügt. Demzufolge kannst du dir eine Server anlegen, eine Internetseite erstelen und Bitcoin-Core installieren. Kunden die auf deine Web-Seite kommen, können sich dann eine Bitcoin-Wallet bei dir anlegen und diese nutzen. Das ist genau das was Bitcoin-Wallet Anbieter wie BitcoinChange.org und andere machen.
Wenn sich die meisten Bitcoin Nutzer, keinen eigenen Bitcoin-Core auf ihren Computer installieren und solche Service wie zum Beispiel vom größten Bitcoin-Wallet Anbieter „BitcoinChange.org“ nutzen, gebe sie BitcoinChange.org sehr viel Macht. BitcoinChange.org kann, wenn mindestens 50,01% der Bitcoin-Wallets auf dem BitcoinChange.org Server liegen, die Wallets seiner Kunden manipulieren, da diese Wallets auf dem BitcoinChange.org Server angelegt sind und sich selbst Guthaben auf seine Wallet gutschreiben können. BitcoinChange.org kann aber auch andre Manipulationen ausführen und damit z.B. die Börsenpreise beeinflussen, bis hin zum Diebstahl der guthaben seiner Kunden. All diese Macht in der Hand von einem einziegen Mann, ist das wirklich gut? Selbstverständlich habe auch Banken interesse an Bitcoins und kaufen sich bei BitcoinChane.com ein um controlle über den Bitcoin zu bekommen, auch die Zentralbank FED kauft sich da ein.
Der Zweck des Bitcoins ist, sich von dem Monetären Zentralen Geldsystem zu entkoppeln und den Banken ihre Macht zu nehmen. Banken kontrollieren die gesamte Wirtschaft bis hin zu Politik.
Zitat von Amschel Mayer Rothschild „ Gebt mir die Kontrolle über die Währung einer Nation, und es ist mir gleichgültig, wer die Gesetze macht! "

Nun zur Installation
Zum kompilieren und installieren von Programmen, erstellen wir zu erst ein neues Verzeichnis, in dem wir arbeiten werden. Für gewöhnlich erstellt man das Verzeichnis in das: /home/USER/buildUSER“ ist der Ordner mit dem Namen deines Kontos, auf deinem Computer. Also USER mit dem Namen deines Ordner Ersätzen.
Ich mache das etwas anders und erstelle das /build Verzeichnis in das /root Verzeichnis. Dadurch ist der Inhalt des Ordners, nur dem "root“ zugänglich.

* root Konto
Viele werden sagen, das es keine gut Idee ist, im root Konto zu arbeiten. Für eine Linux Anfänger sicherlich richtig; da man als root uneingeschränkten zugriff auf das gesamt System hat und sogar die wichtigsten Systemdateien, mit einem einzigen Befehl löschen kann und dadurch das Betriebssystem so schädigen, das es nicht mehr funktioniert und es neu installiert werden muss.
Also vorsichtig sein, wenn man als root angemeldet ist. Am besten gar nicht als root anmelden.
Aber in diesem Fall müssen wir uns für eine kurze Zeit als root anmelden, um Bitcoin-Core zu installieren.
Manche werden sagen, das man Bitcoin-Core auch wo anders im System installieren kann.
Kann man sicher machen, aber Seinen Geldbeutel lässt man ja auch nicht beim Nachbarn vor der Tür liegen.
Manche Leute scheine nicht zu verstehen, das Bitcoin-Core nicht einfach nur ein Programm ist, es ist viel mehr als das. Bitcoin-Core ist ein echter Digitaler Geldbeutel, in dem echte Werte, mit denen man Dinge kaufen kann, aufbewahrt werden.
Bargeld lässt man ja auch nicht einfach so auf dem Tisch liegen, Menschen habe Tresore um ihr Geld aufzubewahren und das Digitale Geld soll man einfach so auf den Desktop legen?
Wer einem den Rat gibt, Bitcoin-Core nicht im root Verzeichnis zu installieren, der hat keine Vorstellung von Sicherheit.
Das root Verzeichnis ist der sicherste Ort auf einem Computer und nur da kann man sein Geld aufbewahren, sonst nirgends.

Entsperren des "root" Kontos
Um im root Verzeichnis arbeiten zu können, muss man sich als "root" anmelden. Um sich als root anmelden zu können, muss das root-Konto entsperrt werden und ein Passwort vergeben werden.
Nun öffne das „Command Line Interface (CLI)“, mit der Tastenkombination Strg+Alt+T.
Mit folgendem Befehlen richten wir jetzt das root Konto ein:
Code:
sudo passwd -u root
Code:
sudo passwd root
Jetzt zwei mal das gewünschte Passwort eingeben.
Und mit dem folgenden Befehl, als SuperUser anmelden:
Code:
su

Compiler und Dependencies installieren
Als erstes muss ein Compiler und die benötigten Dependencies (Abhängigkeiten) installiert werden. Die „GNU Compiler Collection (GCC)“ und die Dependencies Installiert wir mit folgendem CLI Befehl:
Code:
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3 libevent-dev libboost-system-dev libboost-filesystem-dev libboost-test-dev libboost-thread-dev libdb++-dev libsqlite3-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libqrencode-dev
Wenn du als root angemeldet bist, kannst du den Befehl sudo (SuperUserDo) weglassen.

Datenbank herunterladen und entpacken
Als nächstes muss die „Oracle Berkeley Data Base, Version 4.8.30“ heruntergeladen und Installiert werden.
Download: http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz

Nach dem Download sollte sich die Datei im /home/USER/Downloads Verzeichnis befinden.
Jetzt in dem CLI ein neues Verzeichnis erstellen und in dieses wechseln:
Code:
mkdir /root/build
Code:
cd /root/build
die heruntergeladenen Datei in das /root/build Verzeichnis entpacken.
Dateien werden immer in das Verzeichnis entpackt, in dem man sich befindet. Mit dem Befehl pwd (Present Working Directory), kann der Verzeichnis-Standort überprüft werden; das sollte jetzt /root/build sein.
Code:
tar xfzv /home/USER/Downloads/db-4.8.30.NC.tar.gz
Der Befehl setzt sich folgendermaßen zusammen:
tar ist das Programm zum entpacken von .tar Dateien. Die Optionen xfzv habe folgende Bedeutung: x=Extract, f=File, z=gZip, v=Verbose, Pfad/zu/Datei

Datenbank reparieren
Bevor die Datenbank kompiliert werden kann, muss erst ein Bug (Fehler) beseitigt werden (BugFix).
In dem Verzeichnis: /root/build/db-4.8.30.NC/dbinc muss die Datei atomic.h mit einem Texteditor geöffnet und bearbeitet werden. Am besten und einfachsten ist es mit einem Grafischen Editor; ich benutze den „Kate“. Der "nano“ Texteditor ist standesmäßig auf fast jedem Linux-OS vorinstalliert.
In das CLI diesen Befehl eingeben:
Code:
kate /root/build/db-4.8.30.NC/dbinc/atomic.h
oder
Code:
nano /root/build/db-4.8.30.NC/dbinc/atomic.h

Nun öffnet sich die Datei im Editor.
Jetzt die Zeile 147:
Code:
__atomic_compare_exchange((p), (o), (n))
mit diesem Eintrag ersetzen:
Code:
__atomic_compare_exchange_db((p), (o), (n))

Das ganze noch einmal in der Zeile 179:
Code:
static inline int __atomic_compare_exchange(
mit:
Code:
static inline int __atomic_compare_exchange_db(

Edit-DB-01.png


Mit dem grafischen Editor kann man sich das leicht machen. Ich denke das alle Editoren diese Funktion besitzen „Suchen und ersetzen“, damit kann ein Eintrag gefunden und ersetzt werden. Die Suchen-ersetzen-Funktion, wird mit der Tastenkombination Strg+R aufgerufen und am unteren Rand des Editors erscheinen Felder; in die, die zu suchenden Einträge eingegeben werden und in das zweite Feld, der Eintrag mit dem es ersetzt werden soll. Dann nur noch auf ersetzten klicken und fertig.

Edit-DB-02.png


Eigentlich genügt es, "_db“ an:
static inline int __atomic_compare_exchange(
hinten dran zufügen, so:
static inline int __atomic_compare_exchange_db(

und hier auch das gleiche:
__atomic_compare_exchange((p), (o), (n))
__atomic_compare_exchange_db((p), (o), (n))


Wie du wahrscheinlich bemerkt hast, ist es nur ein Verweis (Link), der angepasst werden muss.
Jetzt das ganze mit der der Tastenkombination Strg+S speichern.
Nano schließt man mit der Tastenkombination Strg+X
Und der BugFix ist erledigt.

Datenbank kompilieren und installieren
Nun ist die Datenbank bereit zum kompilieren und installieren.
In folgendes Verzeichnis wechseln:
Code:
cd /root/build/db-4.8.30.NC/build_unix/
Als nächstes muss konfiguriert werden, das machen wir mit dem Befehl:
Code:
../dist/configure
Jetzt kompilieren mit dem Befehl:
Code:
make
Der Befehl make kann mit der Option --jobs=X alternative -jX versehen werden. Diese Option wird bei Multi-Core CPUs verwendet. Hat man mehr als einen Prozessorkern (was die meisten wohl haben werden), kann anstelle von „X“ die Zahl der zu benutzenden Prozessorkerne eingetragen werden. Ich habe eine acht Kern Prozessor und benutze alle acht Kerne zum kompilieren, Beispiel:
Code:
make -j8
Jetzt noch mit folgendem Befehl, das kompilierte Programm installieren:
Code:
make install
und die Datenbank ist installiert.

Bitcoin-Core herunterladen
Kommen wir nun endlich zur Bitcoin-Core Installation.
Die offizielle Bitcoin Internetseite https://bitcoin.org verweist uns an GitHub, zum herunterladen des Bitcoin-Core Quellcodes: https://github.com/bitcoin/bitcoin
Ich kann diesen Quellcode nicht empfehlen, da es sich um eine Testversion handelt.
Die offizielle Version findet ihr auf: https://bitcoincore.org Da die neuste Version aussuchen und herunterladen.

Download HTTPS-Server: https://bitcoincore.org/bin

BitcoinCore-org-bin.png


Immer den Quellcode herunterladen.
Alle Dateien die für ein Betriebssystem angepasst sind, sind Binäre Dateien und nicht der Quellcode. Auf dem Screenshot sind die Quellcode Dateinen zu sehen, bei neuere Versionen ändert sich lediglich die Versionsnummer.

Bitcoin-Core-Download.png


Die Installationsanleitung basiert auf der, zum Zeitpunkt als dieser Artikel erstellt wurde, neuste Version: bitcoin-core-0.21.0
Solltest du eine andere Version installieren, musst du den Pfad/Versionsnummer anpassen.

Quellcode entpacken
Nach dem der Download fertiggestellt ist, wechseln wir im CLI das Verzeichnis in /root/build:
Code:
cd /root/build
Jetzt die heruntergeladene Datei im CLI in das /root/build Verzeichnis entpacken:
Code:
tar xfzv /home/USER/Downloads/bitcoin-0.21.0.tar.gz

Quellcode konfigurieren
In das Verzeichnis /root/build/bitcoin-0.21.0 wechseln:
Code:
cd /root/build/bitcoin-0.21.0
Im CLI diesen Befehl eingeben:
Code:
./autogen.sh
Da die installierte Datenbank Version „db-4.8.30.NC“ etwas von der für Bitcoin-Core kompatiblen Version „db-4.8.30“ abweicht, muss die Option --with-incompatible-bdb hinzugefügt werden. Ohne diese Option bekommt man beim konfigurieren, am ende eine Fehlermeldung, mit dem Hinweis diese Option hinzuzufügen. Befehl:
Code:
./configure --with-incompatible-bdb

Ich habe die Dokumentation der Datenbank nicht gelesen, ich denke aber das die „NC“ Version, Verbesserungen enthält.

Quellcode kompilieren und installieren
Nachdem Bitcoin-Core erfolgreich konfiguriert wurde, können wir jetzt kompilieren:
Code:
make -jX
Zum Schluss noch:
Code:
make install
Fertig.

Bereinigen
Nachdem installieren, kann man noch etwas aufräumen und damit Speicherplatz freimachen. Der Befehl make clean löscht Dateien, die nach der Installation nicht mehr benötigt werden.

Startmenü Verknüpfung erstellen
Jetzt habe wir noch eine letzten schritt zu machen.
Eine Verknüpfung um Bitcoin-Core zu starten, wird aus einem mir nicht bekannten Grund, bei der Installation nicht erstellt. Also müssen wir das selbst machen.
Als erstes brauchen wir eine Bildchen vom Bitcoin-Core; dieses kopieren wir in ein anderes Verzeichnis. Befehl:
Code:
cp /root/build/bitcoin-0.21.0/doc/bitcoin_logo_doxygen.png /usr/share/icons/hicolor/64x64/bitcoin-logo.png

Nun öffne wir einen Texteditor und fügen folgenden Code ein:
Code:
[Desktop Entry]
Version=0.21.0
Name=Bitcoin-Core
GenericName=bitcoin-qt
Comment=Send and recive Bitcoins
Exec=/usr/local/bin/bitcoin-qt
Terminal=false
MultipleArgs=false
Icon=/usr/share/icons/hicolor/64x64/bitcoin-logo.png
Type=Application
Categories=Application;Network

Das speichern wir jetzt unter:
Code:
/usr/share/applications/bitcoin-qt.desktop

Screenshot.png


Nun ist die Bitcoin-Core Verknüpfung im Startmenü, in der Kategorie "Internet" zu finden.
Fertig.

root abmelden
Um sich aus dem CLI als root abzumelden, den Befehl exit eingeben oder die Tastenkombination „
Strg+D drücken.



Deinstallation von Bitcoin Core und Datenbank
Solltest du dich aus irgend einem Grund für eine Deinstallation entscheiden, wird das so gemacht.
Mit dem Befehl su als "root" anmelden.
Zum deinstallieren von Bitcoin-Core, in das /root/build/bitcoin-0.21.0 Verzeichnis wechseln.
Code:
cd /root/build/bitcoin-0.21.0
und folgenden Befehl eingeben:
Code:
make uninstall && make distclean
Verzeichnis löschen
Code:
rm -r /root/build/bitcoin-0.21.0

Datenbank deinstallieren und löschen
Code:
cd /root/build/db-4.8.30.NC/build_unix/
Code:
make realclean
Verzeichnis löschen
Code:
rm -r /root/build/db-4.8.30.NC

root abmelden
Code:
exit
root Konto sperren
Code:
sudo passwd -l root


First-Start.png


Konfiguration von Bitcoin-Core
Beim ersten Start von Bitcoin-Core fragt das Programm, wie und wo die Blockchain gespeichert werden soll. Es gibt zwei Optionen.
Die erste ist, das die Blockchain heruntergeladen, verifiziert und dann fast vollständig gelöscht wird; es bleiben nur ca. 2GB Blockchain auf dem Datenträger.
Die zweite Option ist, das die gesamte Blockchain nach dem herunterladen, auf dem Computer verbleibt; was ich empfehle.
Optimal ist es, wenn die Blockchain nicht auf dem selben Datenträger gespeichert ist, auf dem das Betriebssystem installiert ist; sondern auf einem zweiten Datenträger.
Der Ordner in dem die Blockchain gespeichert wird, kann frei gewählt und benannt werden.
Nachdem Bitcon-Core gestartet ist, muss man sich noch eine Wallet einrichten.

Energie- und Internet-verbrauch
Da sich einige Leute sogen um den Energie und Internet verbrauch (Traffic) machen, will ich das jetzt richtigstellen.
Bitcoin-Core muss sich bevor er arbeiten kann, aus dem Internet zurzeit etwa 350GB Daten herunterladen, die Blockchain; was ich schon weiter oben erwähnt habe. Danach verbauch Bitcoin-Cor etwa 22MB pro Stunde, das sin ca. 16GB im Monat.
Die Prozessorauslastung ist die meiste Zeit bei 0%. Ab und zu macht der Bitcon-Core Berechnungen, dann steigt die CPU Auslastung für einige Minuten etwas an, bei mir um etwa 10%.
Auch wehrend des Downloads der Blockchain, bleibt die CPU-Auslastung hoch, bei mir zwischen 20 und 40%. Die CPU-Auslastung hängt mit der Verifizierung der heruntergeladen Daten zusammen. Somit ist der Internet- und Energie- verbrauch des Bitcoin-Core, nachdem die Blockchain heruntergeladen ist minimal.

CPU.png


So sieht dann das Bitcoin-Core Graphical User Interface aus::
New-Wallet-01.png

New-Wallet-02.png

New-Wallet-03.png

New-Wallet-04.png

New-Wallet-05.png

New-Wallet-06.png

New-Wallet-07.png

New-Wallet-08.png

New-Wallet-09.png

New-Wallet-10.png


Hier noch wie eine neue Wallet erstellt wird.

New-Wallet.png
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Innensechskant
root@linux schrieb:
Nur weil man ein Programm als root installiert, heißt das nicht, das man es als einfacher Benutzer nicht starten kann. Du musst Bitoin-Core nicht als root laufen lassen, geht auch als unprivilegierter Benutzer. Das gut daran ist, das eine unprivilegierter Benutzer keine Zugriff auf das "root Verzeichnis" hat und dadurch auch nicht am Quellcode herumspielen kann. Wenn du aber den Quellcode im Benutzer Verzeichnis /home/USER anlegst, hat der Benutzer jederzeit uneingeschränkten Zugriff auf den Quellcode.
Hier geht es nicht um Zugriff auf den Quellcode (Bitcoin Core ist open source), sondern um Rechteisolation des Programms gegen Angriffe von außen, da die Anwendung eine offene Flanke in das Internet darstellt. Sollte ein Angreifer ein priviligiertes Programm kapern, so hat er direkt Root-Rechte.
 
  • Gefällt mir
Reaktionen: andy_m4 und nullPtr
root@linux schrieb:
Das gut daran ist, das eine unprivilegierter Benutzer keine Zugriff auf das "root Verzeichnis" hat und dadurch auch nicht am Quellcode herumspielen kann.
Und was ist jetzt das Schlimme, wenn das ein Nutzer kann? Es erschließt sich einfach nicht, wieso man diesen Quellcode in `/root' ablegen sollte.
root@linux schrieb:
Wenn du aber den Quellcode im Benutzer Verzeichnis /home/USER anlegst, hat der Benutzer jederzeit, uneingeschränkten Zugriff auf den Quellcode.
Stimmt nicht.
sudo chown root:root file && sudo chmod 600 file
Ergänzung ()

root@linux schrieb:
Nur weil man ein Programm als root installiert, heißt das nicht, das man es als einfacher Benutzer nicht starten kann. Du musst Bitoin-Core nicht als root laufen lassen, geht auch als unprivilegierter Benutzer.
Und genau deshalb nannte ich deine Anleitung "schädlich". Der Ordner /root hat typischerweise 700er-Rechte. D.h. alle neuen Files, die man erstallt sind erst mal auch nur für Root lesbar. Dadurch wird der unbedarfte Leser animiert, den Krempel direkt als Root laufen zu lassen.
 
nullPtr schrieb:
sudo chown root:root file && sudo chmod 600 file
Dafür braucht du erst mal das Passwort !!!
Und wenn du das Passwort hast, kannst du dich auch gleich als "root" anmelden !!!

So sieht es aus wenn du das Passwort NICHT hast:

root.png
 
Das war ein Beispiel dafür, wie man eine Datei für Nutzer unzugänglich machen kann unabhängig davon wo sie liegt. Wenn du deine Software nach /root installierst brauchst du ja wohl auch das Passwort...
 
nullPtr schrieb:
Wenn du deine Software nach /root installierst brauchst du ja wohl auch das Passwort...
Sag mal, checkst du das nicht oder was ist los mit dir?
Der root Ordner ist geschützt vor unerlaubten Zugriffen.
Wenn du der Admin auf dem System bist, hast du die nötigen Passwörter. Andere Nutzer haben kein SuperUser/root Passwort und demzufolge auch keine Zugriff auf das "root" Verzeichnis.
 
Ich versuche es nochmal in Ruhe.

Deine Anleitung sagt: Software X nach /root installieren. Dazu brauchst du das Passwort. Wieso dahin installieren? Du sagtest, weil normale Nutzer darauf kein Zugriff haben.

Du kannst eine Software aber auch nach /home/nullptr/X installieren und dann (als Installierender) dem bösen Nutzer nullptr die Rechte für Folder "X" komplett entziehen mit dem Kommando, das ich dir oben geschrieben habe.


Offtopic:
Und jetzt hast du dir folgendes redlich verdient:
root@linux schrieb:
Und das musste ich dir tatsächlich erklären?
Das ist Linux-Grundwissen.
Wer so etwas nicht weiß, sollte niemandem irgendwelche Ratschläge in Sachen Sicherheit geben.
Das Problem ist halt, das der Unwissende nicht weiß das er unwissend ist.
Das steckt noch eine menge Verbesserung-potenzial in dir.
SCNR.
 
nullPtr schrieb:
Du kannst eine Software aber auch nach /home/nullptr/X installieren und dann (als Installierender) dem bösen Nutzer nullptr die Rechte für Folder "X" komplett entziehen mit dem Kommando, das ich dir oben geschrieben habe.
Also, um Programme auf eine Linux-OS installieren zu können, benötigt man sowieso das "su" Passwort; ist richtig, ja.
Ein Verzeichnis schützen, kann man immer machen; aber wozu so eine komplizierte Aktion, wenn ein Verzeichnis bereits vorhanden, bestens Geschütz ist und man diese nutzen kann (root)?
Dein Vorschlag ist unnötig kompliziert und für eine Dummy-Anleitung, absolut inakzeptabel.
 
@ el osito
Warum kommst du ständig mit irgendwelchen Hacks hier an?
Hier geht es nicht ums hacken, of toppic, bb.
 
Omfg. Diese Antwort richtet sich irgendwie selbst. Deine Reaktionen sich echt Troll-würdig.
Die völlig normale Installation einer Software wie sie @el osito vorgestellt hat, als "Hack" zu bezeichnen und dein (fragwürdiges) Vorgehen als einzig Wahres...

root@linux schrieb:
Dein Vorschlag ist unnötig kompliziert und für eine Dummy-Anleitung, absolut inakzeptabel.
Ich hatte auch nie einen Vorschlag für deine Anleitung gemacht. Ich hatte nur deine Behauptung widerlegt, dass man alle Dateien in /home/USER automatisch lesen kann.

Ich glaube, man sollte mal irgendeine Art Peer-Review für "Leserartikel" hier im Forum anfangen. Das hängt nämlich vor dem Thread wie ein Prädikat.
 
Das ist reine Installationsroutine. Aber ok, scheinbar sind Anmerkungen nicht erwünscht.
 
  • Gefällt mir
Reaktionen: sedot
root@linux schrieb:
Immer diese Gemecker.
Du solltest es vielleicht weniger als Gemecker betrachten, sondern als Kritik. Kritik an der man auch wachsen kann.

root@linux schrieb:
Von Smartphones war hier nie die reden. Wieso bringst du jetzt Smartphones ins Thema?
Ich bezog mich auf Bitcoin allgemein (genauso wie der Stromverbrauchsaspekt ein allgemeines Problem ist von dem der einzelne Nutzer nicht viel merkt) und nicht auf die Anleitung.

root@linux schrieb:
Das Bitcoins keinen Nutzen haben ist mir neu; und daraus folgt die Frage, warum so viele Menschen auf der Welt Bitcoins nutzen?
Hab ich Dir bereits erläutert. Der wesentliche Nutzen besteht in Spekulation und Ransomware-Erpresser bezahlen. Von mir aus auch noch im Darknet irgendwelchen Kram kaufen.
Angesichts der Ressourcenverschwendung finde ich den Nutzen für mich als Normalsterblicher überschaubar.

root@linux schrieb:
Wen mann sich Bitcoin-Core auf seinem Computer installiert, wird man nicht automatisch zum Miner. Das Mineing habe ich in diesem Artikel expliziert nicht erwähnt, warum bringst du dieses Thema?
Ich weiß nicht, ob Du Dich mit Absicht dumm stellst oder ich mich einfach nur unverständlich ausdrücke.
Deine Behauptung war, Bitcoin ist dezentral. De-facto ist sie das aber nicht (mehr).
Das und welche Implikationen das hat, habe ich aber bereits geschrieben und sehe daher wenig Sinn das zu wiederholen. Ich verweise auf meinen vorhergehenden Beitrag.

root@linux schrieb:
Wenn man Bitcoin-Core nur zum versenden und empfangen von Bitcoins benutzt, werden nur sehr wenig Rechenoperationen durchgefügt.
Auch hier gehst Du wieder völlig an dem vorbei was ich sagte.
Ja. Für den einzelnen Nur-Benutzer der nicht großartig mint ist das uninteressant. Im globalen Kontext in der Energieverbrauch aber schon relevant.

nullPtr schrieb:
Deine Anleitung sagt: Software X nach /root installieren.
Wenn ich richtig verstanden hab, gehts vor allem darum die Software in /root herunterzuladen zu entpacken und zu kompilieren. Das installierten geht dann irgendwie mit make install or whatever.
Jetzt mal unabhängig davon, wo das kompilieren stattfindet. Meiner Ansicht nach ist das Grundproblem, das überhaupt so viele Operationen als root ausgeführt werden. Das mit dem make install ... geschenkt.

Das man aber runter laden und kompilieren mit root-Rechten macht widerspricht klar der gängigen Praxis, das man wirklich nur die Operationen wo root absolut notwendig ist auch mit root gemacht werden sollen.

Oder ums mal ganz plakativ auszudrücken:
das Gängige
Bash:
fetch url/file.tar.gz
tar xzf file.tar.gz
./configure
make
sudo make install
wird hier fahrlässigerweise durch
Bash:
sudo fetch url/file.tar.gz
sudo tar xzf file.tar.gz
sudo ./configure 
sudo make
sudo make install
ersetzt.
 
  • Gefällt mir
Reaktionen: sedot
nullPtr schrieb:
Die völlig normale Installation einer Software wie sie @el osito vorgestellt hat, als "Hack" zu bezeichnen und dein (fragwürdiges) Vorgehen als einzig Wahres...
Das Thema hier ist: Installation vom Quellcode. Und nicht anderes.
nullPtr schrieb:
Ich hatte nur deine Behauptung widerlegt, dass man alle Dateien in /home/USER automatisch lesen kann.
In dem man die Rechte des Ordner verändert, was keine Standard Installation ist und bei einer Standardinstallation auch nicht benötigt wird und somit ein Hack ist; mit dem man eine Ordner schützt. Dagegen ist die Installation ins "root" Verzeichnis, genauso Standard wie die im "user" Verzeichnis.
Beispiel: Nach der Installation des Arch-Linux Betriebssystems, ist kein User angelegt und viele Administratoren, legen sich auch kein Benutzer Konto an; demzufolge haben die kein /home Verzeichnis und installieren ihre Programme, in das /root Verzeichnis, weil das /root Verzeichnis das Äquivalent zum /home des Administrators ist.

Im übrigen, wenn du mit der Installation im /root so ein Problem hast, dann kannst du dir das Programm wo anders installieren. Niemand zwingt dich dazu. Mach was du willst.
Ergänzung ()

andy_m4 schrieb:
...den Meiner Ansicht nach ist das Grundproblem, das überhaupt so viele Operationen als root ausgeführt werden. Das mit dem make install ... geschenkt.
Meiner ansiecht nach, ist es nicht gewollt das Leute den "root" benutzen.
Der root hat die höchsten Priorität und demzufolge die höhste Gewalt.
Was bedeutet, das der root immer, uneingeschränkten Zugriff auf alle Benutzerkonten hat; umgekehrt haben die Benutzer keine Zugriff auf root Dateien.
Sieht man das aus dem Betrachtungswinkel eines Systemadministrators, möchte man sicher nicht, das sich Benutzer am root zu schaffen machen.
Wenn man aber selbst ein Systemadministrator ist, möchte man kein einfaches Benutzerkonto haben, sondern den root account.
 
Zuletzt bearbeitet:
root@linux schrieb:
In dem man die Rechte des Ordner verändert, was keine Standard Installation ist und bei einer Standardinstallation auch nicht benötigt wird und somit ein Hack ist
Dann ist aber Deine (völlig unübliche) Vorgehensweise "wir entpacken was in /root und kompilieren dort fröhlich rum" aber erst recht ein Hack.

root@linux schrieb:
Meiner ansiecht nach, ist es nicht gewollt das Leute den "root" benutzen.
Warum, zum Teufel, brauchst Du dann so einen Quatsch in Deine Anleitung ein!

root@linux schrieb:
Der root hat die höchsten Priorität und demzufolge die höhste Gewalt.
Ach nee.

root@linux schrieb:
Sieht man das aus dem Betrachtungswinkel eines Systemadministrators, möchte man sicher nicht, das sich Benutzer am root zu schaffen machen.
Wenn man aber selbst ein Systemadministrator ist, möchte man kein einfaches Benutzerkonto haben, sondern den root account.
Ich hab den Eindruck, Du hast immer noch nicht verstanden, wo das Problem liegt.
Das Problem liegt darin, das Du auch für Operationen Root-Rechte nimmst, für die überhaupt keine Root-Rechte notwendig sind. Die werden natürlich notwendig weil Du unbedingt das Zeugs unter /root ablegen und kompilieren willst.
Das ist aber nicht gottgegeben. Sondern Deine eigene Entscheidung. Eine suboptimale Entscheidung, ums vorsichtig auszudrücken. Deshalb machtes auch praktisch niemand so. Der etablierte Workflow ist so, wie ich ihn bereits beschrieben habe. Davon abzuweichen sollte irgendwie begründbar sein (ansonsten muss ich davon ausgehen, das Du nicht weißt, wovon Du redest). Diese Begründung bist Du bisher schuldig geblieben.
 
  • Gefällt mir
Reaktionen: sedot
andy_m4 schrieb:
das Du auch für Operationen Root-Rechte nimmst, für die überhaupt keine Root-Rechte notwendig sind.
Im root Verzeichnis kannst du nur als root arbeiten, sobald du dich abmeldest kommst du da nicht mehr rein.
Soll ich mich jetzt ständig an und abmelden?
 
root@linux schrieb:
Im root Verzeichnis kannst du nur als root arbeiten, sobald du dich abmeldest kommst du da nicht mehr rein.
Wie gesagt. Niemand zwingt Dich das Zeug unter /root zu packen.
Vielleicht solltest Du meine Texte mal lesen bevor Du antwortest. Sonst drehen wir uns hier ewig im Kreis.
 
  • Gefällt mir
Reaktionen: sedot
Ich finde die Anleitung ohne Warnhinweis, Stichwort root, nicht so gut geeignet für Einsteiger. Rein formal wären Zwischenüberschriften und vielleicht ein toc ganz nett, falls du Lust hast noch etwas nachzuarbeiten.
 
Artikelerweiterung

root@linux schrieb:
* root Konto
Viele werden sagen, das es keine gut Idee ist, im root Konto zu arbeiten. Für eine Linux Anfänger sicherlich richtig; da man als root uneingeschränkten zugriff auf das gesamt System hat und sogar die wichtigsten Systemdateien, mit einem einzigen Befehl löschen kann und dadurch das Betriebssystem so schädigen, das es nicht mehr funktioniert und es neu installiert werden muss.
Also vorsichtig sein, wenn man als root angemeldet ist. Am besten gar nicht als root anmelden.
Aber in diesem Fall müssen wir uns für eine kurze Zeit als root anmelden, um Bitcoin-Core zu installieren.
Manche werden sagen, das man Bitcoin-Core auch wo anders im System installieren kann.
Kann man sicher machen, aber Seinen Geldbeutel lässt man ja auch nicht beim Nachbarn vor der Tür liegen.
Manche Leute scheine nicht zu verstehen, das Bitcoin-Core nicht einfach nur ein Programm ist, es ist viel mehr als das. Bitcoin-Core ist ein echter Digitaler Geldbeutel, in dem echte Werte, mit denen man Dinge kaufen kann, aufbewahrt werden.
Bargeld lässt man ja auch nicht einfach so auf dem Tisch liegen, Menschen habe Tresore um ihr Geld aufzubewahren und das Digitale Geld soll man einfach so auf den Desktop legen?
Wer einem den Rat gibt, Bitcoin-Core nicht im root Verzeichnis zu installieren, der hat keine Vorstellung von Sicherheit.
Das root Verzeichnis ist der sicherste Ort auf einem Computer und nur da kann man sein Geld aufbewahren, sonst nirgends.
 
Ganz ehrlich. Ich verstehe hier deinen Ansatz nicht, die Software Bitcoin Core als Root zu betreiben.

Wir müssen immer davon ausgehen, dass eine Software, welche Verbindung zum Internet herstellen kann, potentiell gefährlich ist. Über eine Schwachstelle im Code könnte Zugriff auf das System hergestellt werden. Installiert man also Bitcoin Core, wie von dir vorgeschlagen, als root, so hat der Angreifer im System Root-Rechte. Daher ist root NIE der sicherste Ort für Anwendungen, außer systemseitige Anwendungen und Dienste!

Würde man Bitcoin Core als Standardnutzer (keine Root-Rechte) unter /home/ installieren, so müsste der Angreifer zusätzlich das Root-Passwort knacken oder sich anderweitig Rootrechte besorgen, um systemweit Schaden anrichten zu können.

Das eigentliche Wallet sollte bestenfalls getrennt vom Computer aufbewahrt werden, also gar nicht auf dem Rechner liegen, sondern in einer Hardware Wallet (Ledger, Bitbox, etc.). In deinem Beispiel schafft auch Root hier keine Abhilfe. Daher ist die Analogie mit dem Geldbeutel beim Nachbarn nicht anwendbar.
 
root@linux schrieb:
Viele werden sagen, das es keine gut Idee ist, im root Konto zu arbeiten.
Ja. Sagen nicht nur Viele. Sagen fast alle. Bis auf ein kleines gallisches Dorf, welches erbitterten Widerstand leistet. :-)

root@linux schrieb:
Aber in diesem Fall müssen wir uns für eine kurze Zeit als root anmelden, um Bitcoin-Core zu installieren.
Dagegen sagt ja auch keiner was. Aber Du machst ja viel mehr mit root-Rechte. Du lädst irgendwas runter. Kompilierst. usw. Für all dies braucht man keine Root-Rechte. Es ist auch völlig unüblich, wie Du das da handhabst.

Normal ist es so, das man runterladen, vorkonfigurieren, kompilieren mit niedrigen Rechten macht und sich dann erst für die Installation (wo man dann ja in Systembereiche wie /usr/local/ schreiben muss) sich root-Rechte gibt.

root@linux schrieb:
Kann man sicher machen, aber Seinen Geldbeutel lässt man ja auch nicht beim Nachbarn vor der Tür liegen.
Manche Leute scheine nicht zu verstehen, das Bitcoin-Core nicht einfach nur ein Programm ist, es ist viel mehr als das. Bitcoin-Core ist ein echter Digitaler Geldbeutel
Wird ja immer besser. Jetzt wirfst Du schon das Programm (bitcoin-core) mit dem Geldbeutel (Wallet) zusammen. Das sind erst mal völlig verschiedene Dinge. Das hat gar nichts damit zu tun, wo Du das Bitcoin-Programm hininstallierst.
 
  • Gefällt mir
Reaktionen: foo_1337, el osito und lokon
Status
Für weitere Antworten geschlossen.
Zurück
Oben