BitwWsp Bitcoin Multi Vendor Marketplace Installation

BitWasp Multi Vendor Marketplace installieren

Installationsanweisungen für BitWasp können hier gefunden werden. BitWasp wird auf einem Debian-System entwickelt, daher füge ich einige Befehle bei, um zu versuchen, Ihr System für die Ausführung des Codes bereit zu machen. BitWasp wurde auf apache2 entwickelt und diese Anleitung geht davon aus, dass Sie es installiert haben, ebenso wie einen mysql-Server. Diese Installationsanleitung wird alle weiteren Schritte abdecken, wie z.B. die anderen Abhängigkeiten von BitWasp.

 

Abhängigkeiten

System-Pakete

Erstens benötigen Sie curl für den Bitcoin-Daemon, um Callback-Skripte zu verwenden. Wann immer der Bitcoin-Daemon von einer neuen Transaktion oder einem neuen Block erfährt, muss er dies dem Marktplatz mitteilen. PHP benötigt auch die cURL-Erweiterung, um Informationen von APIs zu laden (z. B. Bitcoin-Kurse). Die PHP GD-Erweiterungsbibliothek wird verwendet, um die Größenänderung/Konvertierung von Bildern zu verarbeiten. Der Marktplatz verfügt über Code, der auch mit Image Magick funktioniert. Sie benötigen auch die GMP-Erweiterung. Die PHP-ECC-Bibliothek benötigt diese (ebenso wie eine andere, langsamere, bmath. Machen Sie sich nicht die Mühe damit, verwenden Sie nur GMP), um zu laufen.

sudo apt-get install build-essential curl php5-curl php5-dev php5-gd php5-imagick php5-gmp php5-mcrypt php5-mysql php-pear

GnuPG

GnuPG muss installiert werden, ebenso wie die gnupg-Erweiterung für PHP. Die PHP-Erweiterung hat einige Abhängigkeiten, die über apt-get verfügbar sind. Sie muss ebenfalls aus den Quellen gebaut werden.

sudo apt-get install gnupg libgpg-error-dev libassuan-dev

BitWasp wurde mit der Version 1.3.2 von gpgme getestet, daher würde ich empfehlen, diese herunterzuladen. Der vorletzte Schritt installiert die gnupg-Erweiterung.

wget ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-1.3.2.tar.bz2
tar xvjpf gpgme-1.3.2.tar.bz2
cd gpgme-1.3.2
./configure
make && sudo make install
sudo pecl install gnupg
sudo nano /etc/php5/apache2/php5.ini

Nachdem die Erweiterung installiert ist, fügen Sie diese Einstellung ganz am Ende der php.ini hinzu

extension=gnupg.so

Drücken Sie CTRL-X zum Beenden, drücken Sie y zur Bestätigung und starten Sie apache2 neu

sudo service apache2 reload

Das Standard-Home-Verzeichnis von GPG (für den Apache-Benutzer) ist /var/www. Bitwasp wird stattdessen /tmp verwenden, um mit schreibgeschützten Dateisystemen kompatibel zu sein. Dies geschieht im Code, erfordert also keine weiteren Schritte von Ihnen.

Bitcoin Multi Vendor Marketplace Bitcoin

Bitcoin Daemon

Als nächstes müssen Sie die Bitcoin-Binärdateien herunterladen. Dies ist der Bitcoin-Daemon, der im Hintergrund läuft, Ihre Website über neue Transaktionen informiert und Zahlungen annimmt und sendet. BitWasp wurde mit dem 0.8.5 Client getestet. Wir empfehlen Ihnen, einen separaten Benutzer einzurichten, um das Bitcoin-Binary auszuführen, aber es hat keinen Einfluss auf die spätere Konfiguration, wenn Sie es nicht tun. Laden Sie die Binärdateien von hier herunter (vorausgesetzt, Sie verwenden die vorgefertigten Binärdateien): http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.5/bitcoin-0.8.5-linux.tar.gz/download

Einen Bitcoin-Benutzer hinzufügen:

sudo adduser bitcoin
sudo su bitcoin

Entpacken Sie die bitcoin-Binärdateien und erstellen Sie einen Ordner .bitcoin in Ihrem Home-Verzeichnis, der Ihre bitcoin.conf enthält

tar xvf bitcoin-0.8.5-linux.tar.gz
cd ~
mkdir .bitcoin
touch bitcoin.conf
nano bitcoin.conf

Konfigurieren Sie Ihre bitcoin.conf so ähnlich wie hier. Diese Konfigurationsdatei sorgt dafür, dass bitcoind die JSON-RPC-Schnittstelle öffnet, auf Port 28332 läuft, nur Verbindungen von localhost zulässt und im Testnetz läuft. Wahrscheinlich wollen Sie dem Code noch nicht mit echten Bitcoins vertrauen.

rpcuser=bitcoinrpc
rpcpassword=this should be a ridiculously long password, something you don't need to remember as you can copy from this file later, and no one else can guess.
testnet=1
daemon=1
server=1
rpcport=28332
rpcconnect=127.0.0.1

Wir werden nun den Bitcoin-Daemon zum ersten Mal laden und ihm erlauben, ein Wallet zu erstellen und die Blockchain herunterzuladen. Dies wird einige Zeit in Anspruch nehmen, obwohl es im Testnetz wesentlich weniger Zeit in Anspruch nimmt. Die obige Beispiel-Konfigurationsdatei geht davon aus, dass Sie bitcoin im Testnetz verwenden, da wir die Leute nicht dazu ermutigen, bitwasp zu verwenden, um Zahlungen zu akzeptieren.

cd bitcoin-0.8.5-linux/bin/32/
./bitcoind

Sie können den Fortschritt bei der Aktualisierung der Blockchain verfolgen, indem Sie: ./bitcoind getinfo aufrufen und die Höhe der Blöcke betrachten. Sie können den Daemon jederzeit anhalten, indem Sie zu diesem Verzeichnis zurückkehren und Folgendes ausführen:

./bitcoind stop

MySQL

Nun müssen Sie einen Bitwasp-Benutzer in der MySQL-Datenbank anlegen. Melden Sie sich als root an und erstellen Sie den neuen Benutzer und die Datenbank, indem Sie folgendes eingeben:

CREATE DATABASE bitwasp   
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_unicode_ci;
CREATE USER 'bitwasp'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON bitwasp.* to 'bitwasp'@'localhost';

Wir empfehlen Ihnen, ein Konto auf github einzurichten, damit Sie leicht über neuen Code auf dem Laufenden bleiben können. Wir gehen davon aus, dass Sie git bereits installiert haben. Das macht die Verwaltung des Codes viel einfacher: Sie müssen keine neuen Dateien herunterladen, sondern geben einfach einen Befehl ein, und schon sind Sie auf dem neuesten Stand. Sie müssen lediglich SSH-Schlüssel für den Zugriff auf Ihr eigenes Konto einrichten.

Bitcoin Multi Vendor Marketplace Hidden Service

Wechseln Sie das Verzeichnis in Ihr Dokumentenstammverzeichnis für die Bitwasp-Site/den Vhost. Initialisieren Sie ein neues Github-Repository und holen Sie sich die neuesten Daten:

cd /var/www/bitwasp
git init
git pull git@github.com:Bit-Wasp/BitWasp
git fetch git@github.com:Bit-Wasp/Bitwasp

Nun, da Sie den Code haben, müssen Sie die Website konfigurieren.

Tidy URL´s

Wenn Sie index.php aus den URLs entfernen möchten, müssen Sie die .htaccess-Datei und die Hauptkonfigurationsdatei von CodeIgniters in ./application/config/config.php ändern. Bearbeiten Sie die .htaccess-Datei so, dass sie Folgendes enthält:

RewriteBase /

Bearbeiten Sie ./application/config/config.php so, dass der zweite Konfigurationspunkt leer ist:

$config['index_page'] = '';

Möglicherweise müssen Sie das Rewrite-Modul aktivieren:

sudo a2enmod rewrite
sudo service apache2 reload

BitWasp konfigurieren

Jetzt müssen wir Ihre Bitcoin- und Mysql-Anmeldedaten einrichten. Kopieren Sie die Beispieldateien und geben Sie einfach Ihre Anmeldedaten ein.

p ./application/config/bitcoin.php.sample ./application/config/bitcoin.php
nano ./application/config/bitcoin.php
cp ./application/config/database.php.sample ./application/config/database.php
nano ./application/config/database.php

Danach müssen Sie die Datei schema.sql im Stammverzeichnis des Dokuments in Ihre Datenbank importieren. Sie können dafür phpMyAdmin verwenden oder es von der Kommandozeile aus tun. Sie werden aufgefordert, Ihr Passwort einzugeben, und damit ist die Installation/Konfiguration von BitWasp mit MySQL abgeschlossen.

mysql -u bitwasp -p "bitwasp" < ./schema.sql

Sobald der Bitcoin-Daemon geladen und auf dem neuesten Stand ist, müssen Sie ihn neu starten, damit er mit dem Marktplatz interagiert und die relevanten Blöcke und Transaktionen protokolliert. Außerdem müssen Sie drei Konten auf der bitcoind-Brieftasche erstellen: fees, main und topup. Diese Konten werden nach ihrem Zweck benannt: Benutzer laden Adressen auf, die topup zugewiesen sind, und sobald sie verifiziert sind, werden sie an main weitergeleitet.

Installieren von Bitcoin Multi Vendor Marketplace

Für Transaktionen erhält der Administrator eine Gebühr, die an eine Adresse der fees-Wallet gesendet wird. Das Guthaben sammelt sich in fee’s und main an, es sei denn, der Nutzer aktiviert die Backup-Funktion. Derzeit generiert der Marktplatz ein ECDSA-Schlüsselpaar, sendet die überschüssigen Münzen an die Bitcoin-Adresse des Schlüsselpaars und verschlüsselt das Schlüsselpaar mit GPG, falls verfügbar, bevor er dem Administrator eine Nachricht mit den Details zum Zugriff auf das Guthaben schickt. Die für die Konten generierten Adressen können verworfen werden.

cd ~/bitcoin-0.8.5-linux/bin/32/
./bitcoind getaccountaddress fees
./bitcoind getaccountaddress main
./bitcoind getaccountaddress topup
./bitcoind stop

Fügen Sie die folgenden Zeilen in Ihre bitcoin.conf-Datei ein:

walletnotify=curl http://localhost/index.php/callback/wallet/%s
blocknotify=curl http://localhost/index.php/callback/block/%s
alertnotify=curl http://localhost/index.php/callback/alert

Starten Sie jetzt Bitcoin neu:

$ bitcoind

Von nun an führt Ihr Marktplatz ein aktuelles Verzeichnis der Blöcke, die er gesehen hat, und der Transaktionen, die sich auf seinen Kontostand auswirken (z. B. Aufladen von Guthaben durch Nutzer, Auszahlen von Guthaben).

Autorun-Skripte

Sie müssen Ihre crontab so konfigurieren, dass curl den Autorun Callback Trigger aufruft. Dieser wird jede Minute ausgeführt, und Bitwasp prüft, ob einer der Jobs ausgeführt werden muss.

*/1 * * * * curl http://localhost/index.php/callback/autorun

Sie sind fertig !

Zu diesem Zeitpunkt sollte der Marktplatz fertig und funktionsfähig sein. Es gibt keine vordefinierten Konten, also müssen Sie selbst welche anlegen. Registrieren Sie einen Käufer- und einen Verkäufer-Benutzer. Legen Sie dann ein Administratorkonto als Käufer an und öffnen Sie später phpMyAdmin, gehen Sie zur Tabelle bw_users und bearbeiten Sie den Eintrag admin users, so dass user_role=’Admin’ lautet.

Sie sollten dem Administratorkonto gleich einen GPG-Schlüssel hinzufügen; wie das geht, erfahren Sie hier: https://fedoraproject.org/wiki/Creating_GPG_Keys#Creating_GPG_Keys_Using_the_Command_Line

Getestete Betriebssysteme

Bitwasp wurde erfolgreich auf den folgenden Betriebssystemen installiert:

  • Debian 8.0
  • Debian 9.0
  • Ubuntu 18.04
  • Ubuntu 20.04

Wenn Sie Bitwasp erfolgreich auf einem anderen System installieren können, lassen Sie es uns bitte wissen.

Funktionsliste:

Diese Liste dient gewissermaßen als meine To-Do-Liste.

Aktuelle Funktionen:

  • Lizenzfrei
  • Konvertieren Sie Bitcoin-Preise in USD/EUR/GBP basierend auf aktuellen Wechselkursen.
  • PGP-basierte Zwei-Faktor-Authentifizierung.
  • RSA-Verschlüsselung von privaten Nachrichten, um sie sicher in der Datenbank zu speichern.
  • Client-seitige PGP-Verschlüsselung / Erzwungene Server-seitige PGP-Verschlüsselung, falls aktiviert.
  • Blockieren von nicht-PGP-verschlüsselten Nachrichten.
  • Javascript-Arbeitsnachweis für die Übertragung von Passwörtern (falls aktiviert, wird langsam abgebaut).
  • Bild-EXIF-Metadaten-Scrubbing.
  • Bitcoin Escrow-System (Adressen mit mehreren Unterschriften).
  • Passwortgeschützte Seiten (mit Timeout) für sensible Seiten.
  • Live-Wechselkurse zur Anzeige der Preise in der lokalen Währung des Benutzers.
  • Ban/Unban für bestimmte Benutzer.
  • Admins können Inserate entfernen (informiert den Verkäufer warum)
  • Wartungsmodus.
  • Auslösen des Wartungsmodus, wenn bitcoind einen Alarm meldet oder ein ernsthafter Alarm auf Github veröffentlicht wird.
  • Suchen Sie Artikel nach Versand nach / Versand von Orten.
  • Gebühren für Käufer/Verkäufer beim Einrichten von Konten erheben.
  • Konfigurierbare Gebühren für Bestellungen.
  • Konfigurierbare Versandgebühren.
  • Konfigurierbare Servicebedingungen
  • Globaler Proxy für die Kommunikation.
  • Professionelles Layout. (Wird derzeit von Harris Kalash erstellt)

Autorun Jobs:

  • Prüfung auf Quellcode-Aktualisierungen, Auslösen des Wartungsmodus bei einer schwerwiegenden Warnung
  • Löschen von Nachrichten, die älter als ein bestimmter Zeitrahmen sind
  • Bitcoin-Preis-Indizierung
  • System, bei dem das Hinzufügen einer Auftragsdatei zu ./applications/libraries/Autorun den Auftrag automatisch der Autorun-Tabelle hinzufügt.

Todo:

  • Suchfeld für Artikel. (Datum der Auflistung, Reihenfolge des Preises, usw.)
  • Anzeige der gesamten untergeordneten Artikel neben dem Namen der übergeordneten Kategorie.
  • Dispute-System für Bestellungen (eingerichtet, muss noch endgültig geklärt werden)

Installer-Skript (Datenbank, Proxy, Kryptowährung, Xcoin-Anmeldedaten, Admin-Passwort/GPG-Schlüssel, Gebühren, Kategorien, Wechselkurse)

Wir arbeiten derzeit daran, die Live-Wallet-Funktionalität vollständig zu entfernen und Multisig-Transaktionen als Standard einzuführen.