logo
  • Forum
  • Reddit
  • #Slack BitcoinCore
  • #Slack
  • Bitcoin Wiki
  • Bitcoin.org

Εγκατάσταση του Bitcoin Core στον υπολογιστή μας

Posted on: December 8, 2015 /
Comments: No comments /
Categories: 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

choose your wallet

 Τρέχοντας για πρώτη φορά τον 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

Screenshot from 2015-12-08 13-51-12

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

 

 

Tags: bitcoin_core, chdimosthenis, compile, εγκατάσταση
April 2023
M T W T F S S
 12
3456789
10111213141516
17181920212223
24252627282930
« Mar    

CC0
To the extent possible under law, https://bitcoin-gr.org/ has waived all copyright and related or neighboring rights to this work. This work is published from: Ελλάδα.