Εγκατάσταση του Bitcoin Core στον υπολογιστή μας
Εγκατάσταση Bitcoin Core
Για την εγκατάσταση του Bitcoin Core μπορείτε να κατεβάσετε το «reference implementation», επίσης γνωστό ως “Satoshi client”, από το bitcoin.org. Ο «reference client» είναι για να εφαρμόζει όλες τις πτυχές του συστήματος του bitcoin, συμπεριλαμβανομένων των wallets, μια μηχανή επαλήθευσης των συναλλαγών με ένα πλήρες αντίγραφο ολόκληρου του αρχείου των συναλλαγών (blockchain) και έναν πλήρη κόμβο δικτύου στο peer-to-peer bitcoin δίκτυο.
Στο http://bitcoin.org/en/choose-your-wallet, επιλέξτε «Bitcoin Core» για να κατεβάσετε τον «reference client». Ανάλογα με το λειτουργικό σας σύστημα, θα κατεβάσετε ένα εκτελέσιμο πρόγραμμα εγκατάστασης. Για τα Windows, αυτό είναι είτε ένα αρχείο ZIP ή ένα .exe εκτελέσιμο. Για Mac OS είναι μια εικόνα δίσκου .dmg. Oι εκδόσεις Linux περιλαμβάνουν ένα PPA πακέτο για το Ubuntu ή ένα αρχείο tar.gz. Η σελίδα bitcoin.org έχει σε λίστα προτεινόμενους «bitcoin clients».
Επιλέγοντας έναν bitcoin client στο bitcoin.org
Τρέχοντας για πρώτη φορά τον Bitcoin Πυρήνα
Εάν κάνετε λήψη ενός πακέτου εγκατάστασης, όπως .exe, .dmg και PPA, μπορείτε να το εγκαταστήσετε με τον ίδιο τρόπο όπως οποιαδήποτε εφαρμογή στο λειτουργικό σας σύστημα. Για τα Windows, εκτελέστε το .exe και ακολουθήστε τις οδηγίες βήμα-προς-βήμα. Για Mac OS, ξεκινήστε το .dmg και σύρετε το Bitcoin-QT εικονίδιο στον φάκελο Applications. Για το Ubuntu, κάντε διπλό κλικ στο PPA στον εξερευνητή αρχείων σας και θα σας ανοίξει το διαχειριστή πακέτων για να εγκαταστήσετε το πακέτο. Μόλις ολοκληρώσετε την εγκατάσταση θα πρέπει να έχετε μια νέα εφαρμογή στη λίστα εφαρμογών σας με το όνομα Bitcoin-Qt. Κάντε διπλό κλικ στο εικονίδιο για να ξεκινήσετε τον bitcoin client.
Την πρώτη φορά που θα τρέξετε το Bitcoin Core θα ξεκινήσει η λήψη του blockchain, μια διαδικασία που μπορεί να διαρκέσει αρκετές ημέρες (τον Νοέμβριο του 2015 χρειάστηκε περίπου 2,5 μέρες σε μία τυπική σύνδεση 24mbps και έναν i5 επεξεργαστή με 6GB RAM). Αφήστε το να τρέχει στο παρασκήνιο μέχρι να εμφανίζει «Συγχρονισμένο» και όχι «εκτός συγχρονισμού» δίπλα στο balance.
Οθόνη Bitcoin Core με συγχρονισμένο blockchain
O Bitcoin Πυρήνας διατηρεί ένα πλήρες αντίγραφο του αρχείου των συναλλαγών (blockchain), περιλαμβάνοντας κάθε συναλλαγή που έχει γίνει ποτέ στο δίκτυο bitcoin από την έναρξή του το 2009. Αυτό το σύνολο δεδομένων είναι αρκετά gigabytes σε μέγεθος (περίπου 48 GB στα τέλη του 2015) και λαμβάνεται σταδιακά μέσα σε κάποιες αρκετές ημέρες. Ο «client» δεν θα είναι σε θέση να επεξεργαστεί συναλλαγές ή να ενημερώσει υπόλοιπα λογαριασμών μέχρι την πλήρη λήψη του blockchain από το διαδίκτυο. Κατά την περίοδο αυτή, ο «client» θα εμφανίζει την ένδειξη “εκτός συγχρονισμού» δίπλα στα υπόλοιπα των λογαριασμών, ενώ στο κάτω μέρος της εφαρμογής θα δείχνει “Γίνεται Συγχρονισμός”. Βεβαιωθείτε ότι έχετε αρκετό χώρο στο δίσκο, bandwidth και χρόνο για την ολοκλήρωση του αρχικού συγχρονισμού.
Κάνοντας compile τον Bitcoin Core από τον πηγαίο κώδικα
Για τους προγραμματιστές, υπάρχει επίσης η επιλογή για λήψη του πλήρη «source code», είτε ως ένα ZIP αρχείο, είτε αντιγράφοντας από την έγκυρη πηγή του GitΗub αποθετηρίου. Στο https://github.com/bitcoin/bitcoin, επιλέξτε «Λήψη ZIP» από την πλαϊνη μπάρα. Εναλλακτικά, χρησιμοποιήστε τη γραμμή εντολών git για να δημιουργήσετε ένα τοπικό αντίγραφο του πηγαίου κώδικα στο σύστημά σας. Στο παρακάτω παράδειγμα, έχουμε την κλωνοποίηση του πηγαίου κώδικα από μία Unix-like γραμμή εντολών, στο Linux ή στο Mac OS:
$ git clone https://github.com/bitcoin/bitcoin.git
Cloning into 'bitcoin'...
remote: Counting objects: 31864, done.
remote: Compressing objects: 100% (12007/12007), done.
remote: Total 31864 (delta 24480), reused 26530 (delta 19621)
Receiving objects: 100% (31864/31864), 18.47 MiB | 119 KiB/s, done.
Resolving deltas: 100% (24480/24480), done.
$
Οι οδηγίες και το αποτέλεσμα που προκύπτει μπορεί να διαφέρουν από έκδοση σε έκδοση. Ακολουθήστε το «documentation» που έρχεται με τον κώδικα, ακόμη και αν αυτό διαφέρει από τις οδηγίες που βλέπετε στο κείμενο, ενώ μην εκπλαγείτε αν το αποτέλεσμα που εμφανίζεται στην οθόνη σας είναι ελαφρώς διαφορετικό από τα παραδείγματα εδώ.
Όταν η «git cloning» λειτουργία έχει ολοκληρωθεί, θα έχετε ένα πλήρες τοπικό αντίγραφο του «source code repository» στον φάκελο bitcoin. Μεταφερθείτε στον φάκελο γράφοντας cd bitcoin στη γραμμή εντολών:
$ cd bitcoin
Από προεπιλογή, το τοπικό αντίγραφο συγχρονίζεται με τον πιο πρόσφατο κώδικα, το οποίο όμως μπορεί να είναι μία ασταθής ή beta έκδοση του bitcoin. Πριν κάνετε «compile» τον κώδικα, επιλέξτε μια συγκεκριμένη έκδοση μετά από έλεγχο στις ετικέτες των εκδόσεων. Αυτό θα συγχρονίσει το τοπικό αντίγραφο με ένα συγκεκριμένο από τα στιγμιότυπα του αποθετηρίου κώδικα, που αναγνωρίζονται από μία ετικέτα λέξη-κλειδί. Οι ετικέτες, χρησιμοποιούνται από τους προγραμματιστές για να σηματοδοτήσουν συγκεκριμένες εκδόσεις του κώδικα με ένα ξεχωριστό αριθμό έκδοσης. Πρώτον, για να βρείτε τις διαθέσιμες ετικέτες, χρησιμοποιήστε την εντολή git tag:
$ git tag
v0.1.5
v0.1.6test1
v0.10.0
v0.10.4
v0.10.4rc1
v0.11.0
v0.11.0rc1
v0.11.0rc2
v0.11.0rc3
v0.11.1
v0.11.1rc1
v0.11.1rc2
v0.11.2
v0.11.2rc1
v0.2.0
v0.2.10
v0.2.11
v0.2.12
v0.2.13
v0.2.2
[... many more tags ...]
v0.9.2
v0.9.2.1
v0.9.2rc1
v0.9.2rc2
v0.9.3
v0.9.3rc1
v0.9.3rc2
v0.9.4
v0.9.5
v0.9.5rc1
v0.9.5rc2
Η λίστα με τις ετικέτες εμφανίζει όλες τις εκδόσεις του bitcoin. Οι υποψήφιες εκδόσεις προορίζονται για δοκιμή και έχουν το πρόθεμα «rc». Οι σταθερές εκδόσεις που μπορούν να τρέξουν σε προγραμματιστικό περιβάλλον παραγωγής δεν έχουν κανένα πρόθεμα. Από την παραπάνω λίστα, επιλέξτε την υψηλότερη έκδοση σε κυκλοφορία, η οποία κατά τη διάρκεια γραψίματος του κειμένου ήταν η v0.11.2. Για να συγχρονίσετε τον τοπικό κώδικα με αυτήν την έκδοση, χρησιμοποιήστε την εντολή git checkout:
Η παράθεση είναι για μια προηγούμενη έκδοση αλλά θα έχει την ίδια μορφή και στην τελευταία έκδοση
$ git checkout v0.9.0rc1
Note: checking out 'v0.9.0rc1'.
HEAD is now at 15ec451... Merge pull request #3605
$
Ο πηγαίος κώδικας περιλαμβάνει «documentation», το οποίο μπορεί να βρεθεί σε μια σειρά από αρχεία. Εξετάστε το βασικό «documentation» που βρίσκεται στο README.md στον φάκελο bitcoin πληκτρολογώντας more README.md στη γραμμή εντολών και χρησιμοποιώντας το «space bar» για να προχωρήσετε στην επόμενη σελίδα. Σε αυτό το κεφάλαιο, θα χτίσουμε τη γραμμή εντολών του bitcoin client στο Linux, γνωστή και ως bitcoin-cli. Δείτε τις οδηγίες για το compile της γραμμής εντολών «bitcoind client» για την πλατφόρμα σας, πληκτρολογώντας more doc/build-unix.md. Εναλλακτικές οδηγίες για Mac OS X και Windows μπορούν να βρεθούν στον φάκελο doc, όπως και στο build-osx.md και build-msw.md αντίστοιχα.
Eξετάστε προσεκτικά τα προαπαιτούμενα για κατασκευή, τα οποία είναι στο πρώτο μέρος του «build documentation». Αυτές είναι βιβλιοθήκες (libraries) που πρέπει να υπάρχουν στο σύστημά σας πριν μπορέσετε να αρχίσετε να κάνετε compile το bitcoin. Εάν αυτά τα προαπαιτούμενα λείπουν, η διαδικασία κατασκευής θα αποτύχει με ένα σφάλμα. Εάν αυτό συμβαίνει επειδή παραλείψατε ένα προαπαιτούμενο, μπορείτε να το εγκαταστήσετε και να συνεχίσετε μετά τη διαδικασία κατασκευής από εκεί που σταματήσατε.
Υποθέτοντας ότι τα προαπαιτούμενα έχουν τώρα εγκατασταθεί, μπορείτε να ξεκινήσετε τη διαδικασία κατασκευής με τη δημιουργία ενός συνόλου «script» κατασκευής χρησιμοποιώντας το autogen.sh σενάριο.
Η διαδικασία κατασκευής του Bitcoin Core από την έκδοση 0,9 και έπειτα έχει αλλάξει και χρησιμοποιεί το σύστημα «autogen/configure/make». Oι παλαιότερες εκδόσεις χρησιμοποιούν ένα απλό Makefile και λειτουργούν λίγο διαφορετικά από το ακόλουθο παράδειγμα. Ακολουθήστε τις οδηγίες για την έκδοση που θέλετε να μεταγλωττίσετε. Η autogen/configure/make που εισήχθει στην έκδοση 0.9 είναι πολύ πιθανό να χρησιμοποιηθεί ως σύστημα κατασκευής για όλες τις μελλοντικές εκδόσεις του κώδικα και είναι το σύστημα παρουσιάζεται στα ακόλουθα παραδείγματα.
$ ./autogen.sh
configure.ac:12: installing `src/build-aux/config.guess'
configure.ac:12: installing `src/build-aux/config.sub'
configure.ac:37: installing `src/build-aux/install-sh'
configure.ac:37: installing `src/build-aux/missing'
src/Makefile.am: installing `src/build-aux/depcomp'
$
Το autogen.sh «script» δημιουργεί μια σειρά από αυτόματα «script» διαμόρφωσης που ανακρίνουν το σύστημά σας για τον εντοπισμό των σωστών ρυθμίσεων, όπως και για την διασφάλιση ότι υπάρχουν όλες οι απαραίτητες βιβλιοθήκες για το «compile»του κώδικα. Το πιο σημαντικό από αυτά είναι το «script» επεξεργασίας που προσφέρει μια σειρά από διαφορετικές επιλογές για την προσαρμογή της διαδικασίας κατασκευής. Πληκτρολογήστε configure –help για να δείτε όλες τις διαφορετικές επιλογές που υπάρχουν:
~/bitcoin$ ./configure -help
`configure' configures Bitcoin Core 0.11.2 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/bitcoin]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--disable-maintainer-mode
disable make rules and dependencies not useful (and
sometimes confusing) to the casual installer
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-wallet enable wallet (default is yes)
--enable-upnp-default if UPNP is enabled, turn it on at startup (default
is no)
--enable-tests compile tests (default is yes)
--enable-comparison-tool-reorg-tests
enable expensive reorg tests in the comparison tool
(default no)
--enable-hardening attempt to harden the resulting executables (default
is yes)
--enable-reduce-exports attempt to reduce exported symbols in the resulting
executables (default is no)
--enable-ccache use ccache for building (default is yes if ccache is
found)
--enable-lcov enable lcov testing (default is no)
--enable-glibc-back-compat
enable backwards compatibility with glibc
--enable-debug use debug compiler flags and macros (default is no)
--disable-largefile omit support for large files
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot=DIR Search for dependent libraries within DIR
(or the compiler's sysroot if not specified).
--with-miniupnpc enable UPNP (default is yes if libminiupnpc is
found)
--with-comparison-tool path to java comparison tool (requires
--enable-tests)
--with-qrencode enable QR code support (default is yes if qt is
enabled and libqrencode is found)
--with-protoc-bindir=BIN_DIR
specify protoc bin path
--with-utils build bitcoin-cli bitcoin-tx (default=yes)
--with-libs build libraries (default=yes)
--with-daemon build bitcoind daemon (default=yes)
--with-incompatible-bdb allow using a bdb version other than 4.8
--with-gui[=no|qt4|qt5|auto]
build bitcoin-qt GUI (default=auto, qt4 tried first)
--with-qt-incdir=INC_DIR
specify qt include path (overridden by pkgconfig)
--with-qt-libdir=LIB_DIR
specify qt lib path (overridden by pkgconfig)
--with-qt-plugindir=PLUGIN_DIR
specify qt plugin path (overridden by pkgconfig)
--with-qt-translationdir=PLUGIN_DIR
specify qt translation path (overridden by
pkgconfig)
--with-qt-bindir=BIN_DIR
specify qt bin path
--with-qtdbus enable DBus support (default is yes if qt is enabled
and QtDBus is found)
--with-boost[=ARG] use Boost library from a standard location
(ARG=yes), from the specified location (ARG=<path>),
or disable it (ARG=no) [ARG=yes]
--with-boost-libdir=LIB_DIR
Force given directory for boost libraries. Note that
this will override library path detection, so use
this parameter only if default library detection
fails and you know exactly where your boost
libraries are located.
--with-boost-system[=special-lib]
use the System library from boost - it is possible
to specify a certain library for the linker e.g.
--with-boost-system=boost_system-gcc-mt
--with-boost-filesystem[=special-lib]
use the Filesystem library from boost - it is
possible to specify a certain library for the linker
e.g. --with-boost-filesystem=boost_filesystem-gcc-mt
--with-boost-program-options[=special-lib]
use the program options library from boost - it is
possible to specify a certain library for the linker
e.g.
--with-boost-program-options=boost_program_options-gcc-mt-1_33_1
--with-boost-thread[=special-lib]
use the Thread library from boost - it is possible
to specify a certain library for the linker e.g.
--with-boost-thread=boost_thread-gcc-mt
--with-boost-chrono[=special-lib]
use the Chrono library from boost - it is possible
to specify a certain library for the linker e.g.
--with-boost-chrono=boost_chrono-gcc-mt
--with-boost-unit-test-framework[=special-lib]
use the Unit_Test_Framework library from boost - it
is possible to specify a certain library for the
linker e.g.
--with-boost-unit-test-framework=boost_unit_test_framework-gcc
--with-libressl Build with system LibreSSL (default is no;
DANGEROUS; NOT SUPPORTED)
Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
OBJCXX Objective C++ compiler command
OBJCXXFLAGS Objective C++ compiler flags
CC C compiler command
CFLAGS C compiler flags
CPP C preprocessor
CXXCPP C++ preprocessor
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
QT_CFLAGS C compiler flags for QT, overriding pkg-config
QT_LIBS linker flags for QT, overriding pkg-config
QT_TEST_CFLAGS
C compiler flags for QT_TEST, overriding pkg-config
QT_TEST_LIBS
linker flags for QT_TEST, overriding pkg-config
QT_DBUS_CFLAGS
C compiler flags for QT_DBUS, overriding pkg-config
QT_DBUS_LIBS
linker flags for QT_DBUS, overriding pkg-config
QTPLATFORM_CFLAGS
C compiler flags for QTPLATFORM, overriding pkg-config
QTPLATFORM_LIBS
linker flags for QTPLATFORM, overriding pkg-config
X11XCB_CFLAGS
C compiler flags for X11XCB, overriding pkg-config
X11XCB_LIBS linker flags for X11XCB, overriding pkg-config
QTXCBQPA_CFLAGS
C compiler flags for QTXCBQPA, overriding pkg-config
QTXCBQPA_LIBS
linker flags for QTXCBQPA, overriding pkg-config
QTPRINT_CFLAGS
C compiler flags for QTPRINT, overriding pkg-config
QTPRINT_LIBS
linker flags for QTPRINT, overriding pkg-config
SSL_CFLAGS C compiler flags for SSL, overriding pkg-config
SSL_LIBS linker flags for SSL, overriding pkg-config
CRYPTO_CFLAGS
C compiler flags for CRYPTO, overriding pkg-config
CRYPTO_LIBS linker flags for CRYPTO, overriding pkg-config
PROTOBUF_CFLAGS
C compiler flags for PROTOBUF, overriding pkg-config
PROTOBUF_LIBS
linker flags for PROTOBUF, overriding pkg-config
QR_CFLAGS C compiler flags for QR, overriding pkg-config
QR_LIBS linker flags for QR, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <https://github.com/bitcoin/bitcoin/issues>.
Το script επεξεργασίας σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε ορισμένα χαρακτηριστικά του bitcoind με τη χρήση των –enable-FEATURE και disable-FEATURE ετικέτων (flags), όπου το FEATURE αντικαθίσταται από το όνομα του χαρακτηριστικού, όπως αναφέρεται στη λίστα της βοήθειας (–help). Εδώ θα φτιάξουμε τον bitcoind client με όλες τις προεπιλεγμένες λειτουργίες. Δεν θα χρησιμοποιήσουμε τις ετικέτες επεξεργασίας, αλλά μπορείτε να τις εξετάσετε ώστε να καταλάβετε ποια προαιρετικά χαρακτηριστικά αποτελούν μέρος του client. Στη συνέχεια, εκτελέστε το script «configure» για την αυτόματη εύρεση των απαραίτητων βιβλιοθηκών και τη δημιουργία προσαρμοσμένων script κατασκευής για το σύστημα σας:
$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
[... many more system features are tested ...]
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/test/Makefile
config.status: creating src/qt/Makefile
config.status: creating src/qt/test/Makefile
config.status: creating share/setup.nsi
config.status: creating share/qt/Info.plist
config.status: creating qa/pull-tester/run-bitcoind-for-test.sh
config.status: creating qa/pull-tester/build-tests.sh
config.status: creating src/bitcoin-config.h
config.status: executing depfiles commands
$
Αν όλα πάνε καλά, η εντολή ./configure θα τελειώσει με τη δημιουργία των προσαρμοσμένων script κατασκευής που θα μας επιτρέψουν να κάνουμε «compile» το bitcoind. Εάν λείπουν βιβλιοθήκες ή υπάρχουν σφάλματα, η ./configure εντολή θα τερματίσει με ένα λάθος αντί να δημιουργήσει τα «script» κατασκευής. Αν υπάρχει σφάλμα, το πιθανότερο είναι ότι κάποια βιβλιοθήκη λείπει ή δεν είναι συμβατή. Επανεξετάστε το «documentation» κατασκευής και βεβαιωθείτε ότι έχετε εγκαταστήσει τα απαραίτητα προαπαιτούμενα. Στη συνέχεια, εκτελέστε ξανά ./configure και δείτε εάν αυτό διορθώνει το σφάλμα. Στη συνέχεια, θα κάνετε «compile» τον πηγαίο κώδικα, μια διαδικασία που μπορεί να διαρκέσει έως και μία ώρα για να ολοκληρωθεί. Κατά τη διάρκεια της διαδικασίας θα πρέπει να εμφανίζονται αποτελέσματα κάθε λίγα δευτερόλεπτα ή κάθε λίγα λεπτά, ή ένα σφάλμα αν κάτι πάει στραβά. Η διαδικασία του «compile» μπορεί να συνεχιστεί ανά πάσα στιγμή εάν διακοπεί. Πληκτρολογήστε make για να ξεκινήσετε το «compiling»:
$ make
Making all in src
make[1]: Entering directory `/home/ubuntu/bitcoin/src'
make all-recursive
make[2]: Entering directory `/home/ubuntu/bitcoin/src'
Making all in .
make[3]: Entering directory `/home/ubuntu/bitcoin/src'
CXX
addrman.o
CXX
alert.o
CXX
rpcserver.o
CXX
bloom.o
CXX
chainparams.o
[... many more compilation messages follow ...]
CXX test_bitcoin-wallet_tests.o
CXX test_bitcoin-rpc_wallet_tests.o
CXXLD test_bitcoin
make[4]: Leaving directory `/home/ubuntu/bitcoin/src/test'
make[3]: Leaving directory `/home/ubuntu/bitcoin/src/test'
make[2]: Leaving directory `/home/ubuntu/bitcoin/src'
make[1]: Leaving directory `/home/ubuntu/bitcoin/src'
make[1]: Entering directory `/home/ubuntu/bitcoin'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/home/ubuntu/bitcoin'
$
Αν όλα πάνε καλά, to bitcoind είναι τώρα «compiled». Το τελικό βήμα είναι η εγκατάσταση του εκτελέσιμου bitcoind στη διαδρομή (path) του συστήματος χρησιμοποιώντας την εντολή make:
$ sudo make install
Making install in src
Making install in .
/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c bitcoind bitcoin-cli '/usr/local/bin'
Making install in test
make install-am
/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c test_bitcoin '/usr/local/bin'
$
Μπορείτε να επιβεβαιώσετε ότι το bitcoin έχει εγκατασταθεί σωστά, ζητώντας από το σύστημα τη διαδρομή των δύο εκτελέσιμων, ως εξής:
$ which bitcoind
/usr/local/bin/bitcoind
$ which bitcoin-cli
/usr/local/bin/bitcoin-cli
Η προεπιλεγμένη εγκατάσταση του bitcoind το βάζει στο /usr/local/bin. Όταν εκτελέσετε για πρώτη φορά το bitcoind, το σύστημα θα σας ζητήσει να δημιουργήσετε ένα αρχείο ρυθμίσεων με έναν ισχυρό κωδικό πρόσβασης για το JSON-RPC «interface». Εκτελέστε το bitcoind πληκτρολογώντας bitcoind στο τερματικό:
$ bitcoind
Error: To use the "-server" option, you must set a rpcpassword in the configura-
tion file:
/home/ubuntu/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=2XA4DuKNCbtZXsBQRRNDEwEY2nM6M4H9Tx5dFjoAVVbK
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com
Επεξεργαστείτε το αρχείο ρυθμίσεων στο προτιμώμενο πρόγραμμα επεξεργασίας σας και ρυθμίστε τις παραμέτρους, αντικαθιστώντας τον κωδικό πρόσβασης με έναν ισχυρό κωδικό πρόσβασης, όπως προτείνεται από το bitcoind. Να μην χρησιμοποιήσετε τον κωδικό που εμφανίζεται εδώ. Δημιουργήστε ένα αρχείο μέσα στον φάκελο .bitcoin έτσι ώστε να ονομάζεται .bitcoin/bitcoin.conf και εισάγετε ένα όνομα χρήστη και κωδικό πρόσβασης:
rpcuser=bitcoinrpc
rpcpassword=2XA4DuKNCbtZXsBQRRNDEwEY2nM6M4H9Tx5dFjoAVVbK
Κατά την επεξεργασία αυτού του αρχείου ρυθμίσεων, ίσως να θέλετε να ορίσετε και μερικές άλλες επιλογές, όπως txindex, αλλά προσοχή με το txindex και reindex γιατί κάθε φορά που θα αλλάζετε μία από αυτές τις επιλογές θα γίνεται rebuild των blocks και είναι χρονοβόρο (http://bitcoin.stackexchange.com/questions/41497/is-there-a-shortcut-for-a-synchronized-bitcoin-core-after-txindex). Για μια πλήρη λίστα των διαθέσιμων επιλογών, πληκτρολογήστε bitcoind –help.
Τώρα, εκτελέστε τον Bitcoin Core «client». Την πρώτη φορά που θα το τρέξετε, θα γίνει ανακατασκευή του bitcoin blockchain με τη λήψη όλων των μπλοκ. Αυτό είναι ένα αρχείο πολλών gigabytes και το πλήρες κατέβασμα του θα χρειαστεί κατά μέσο όρο δύο ημέρες. Μπορείτε να μειώσετε το χρόνο προετοιμασίας του blockchain με τη λήψη ενός μερικού αντίγραφου χρησιμοποιώντας έναν BitTorrent «client».
Εκτελέστε το bitcoind στο παρασκήνιο με την επιλογή -daemon:
$ bitcoind -daemon
Bitcoin server starting
Με αυτόν τον τρόπο έχετε εγκαταστήσει τον Bitcoin Core στον υπολογιστή σας. Στο επόμενο κείμενο θα παρουσιάσουμε πως να χρησιμοποιούμε το JSON-RPC API του Bitcoin Core από την γραμμή εντολών και μερικές από τις δυνατότητες μας προσφέρει.
__________________________________________________________________________________________________
*Αυτή είναι μία εκπαιδευτική παρουσίαση, δουλεύοντας πάνω στις θεμελιώδεις αρχές που στηρίζουν την τεχνολογία του bitcoin, μέσω της τωρινής μελέτης και μετάφρασης του βιβλίου για το bitcoin, Mastering Bitcoin.
**Εάν θέλετε να προσθέσετε κάτι ή έχετε εντοπίσει κάποια παράλειψη μη διστάσετε να συμμετάσχετε.
***Οι τεχνικές ορολογίες βρίσκονται σε στάδιο συναίνεσης και μπορείτε να τις βρείτε στο γλωσσάριο αφού κάνετε εγγραφή για να συνεισφέρετε και εσείς στη μετάφραση. Η κοινότητα είναι αυτή που θα αποφασίσει ποιες λέξεις θα χρησιμοποιούνται στην τεχνολογία και που.
☛ @chdimosthenis