github.com/piotrnar/gocoin@v0.0.0-20240512203912-faa0448c5e96/README.md (about)

     1  # About Gocoin
     2  
     3  **Gocoin** is a full **Bitcoin** solution written in Go language (golang).
     4  
     5  The software architecture is focused on maximum performance of the node
     6  and cold storage security of the wallet.
     7  
     8  The **wallet** is designed to be used offline.
     9  It is deterministic and password seeded.
    10  As long as you remember the password, you do not need any backups ever.
    11  Wallet can be used without the client, but with the provided **balio** tool instead.
    12  
    13  The **client** (p2p node) is an application independent from the **wallet**.
    14  It keeps the entire UTXO set in RAM, providing an instant access to all its records
    15  and - in consequece - an extraordinary blochchain processing performance.
    16  
    17  System memory and time Gocoin client 1.10.1 needs to sync the blockchain up to
    18  the given block number, with comparision to Bitcoin Core 23.0:
    19  
    20  ![SyncChart](website/quick_sync_gocoin_vs_core.png)
    21  *The above data was collected using [Hetzner](https://hetzner.com) dedicated server
    22  with 3.6GHz Intel i7-7700 CPU, 2x512MB SSD and 1Gbit internet connection,
    23  running Debian 11 (bullseye).
    24  Clients using their default configuration, except for the second (blue) Bitcoin Core
    25  that is set to use **dbcache=16384**.<br/>
    26  For other performance charts see [gocoin.pl](https://gocoin.pl/gocoin_performance.html) website.*
    27  
    28  # Requirements
    29  
    30  ## Hardware
    31  
    32  **client**:
    33  
    34  * 64-bit architecture OS and Go compiler.
    35  * File system supporting files larger than 4GB.
    36  * At least 32GB of system RAM (more recommended).
    37  
    38  
    39  **wallet**:
    40  
    41  * Any platform that you can make your Go (cross)compiler to build for (Raspberry Pi works).
    42  * For security reasons make sure to use encrypted swap file (if there is a swap file).
    43  * If you decide to store your password in a file, have the disk encrypted (in case it gets stolen).
    44  
    45  
    46  ## Operating System
    47  Having hardware requirements met, any target OS supported by your Go compiler will do.
    48  Currently that can be at least one of the following:
    49  
    50  * Windows
    51  * Linux
    52  * macOS
    53  * Free BSD
    54  
    55  ## Build environment
    56  In order to build Gocoin yourself, you will need the following tools installed in your system:
    57  
    58  * **Go** (recent version) - http://golang.org/doc/install
    59  * **Git** (optional) - http://git-scm.com/downloads
    60  
    61  If the tools mentioned above are properly installed, you should be able to execute `go` and
    62  (optionally) `git` from your OS's command prompt without a need to specify full path to the
    63  executables.
    64  
    65  # Getting sources
    66  
    67  Download the source code from github to a local folder of your choice by executing:
    68  
    69  	git clone https://github.com/piotrnar/gocoin.git
    70  
    71  Alternatively - if you don't want to use git - download the code archive
    72  from [github.com/piotrnar/gocoin](https://github.com/piotrnar/gocoin)
    73  using any web browser. Then extract the archive to your local disk.
    74  
    75  # Building
    76  
    77  ## Client node
    78  Go to the `client/` folder and execute `go build` there.
    79  
    80  
    81  ## Wallet
    82  Go to the `wallet/` folder and execute `go build` there.
    83  
    84  
    85  ## Tools
    86  Each sub-folder inside `tools/` folder is a separate tool.
    87  
    88  Go to a chosen sub-folder and execute `go build` there.
    89  
    90  
    91  # Binaries
    92  
    93  Windows or Linux (amd64) binaries can be downloaded from
    94  
    95   * https://sourceforge.net/projects/gocoin/files/?source=directory
    96  
    97  Please note that the binaries are usually not up to date.
    98  I strongly encourage everyone to build the binaries himself.
    99  
   100  # Development
   101  Although it is an open source project, I am sorry to inform you that **I will not merge in any pull requests**.
   102  The reason is that I want to stay an explicit author of this software, to keep a full control over its
   103  licensing. If you are missing some functionality, just describe me your needs and I will see what I can do
   104  for you. But if you want your specific code in, please fork and develop your own repo.
   105  
   106  # Support
   107  The official web page of the project is served at <a href="http://gocoin.pl">gocoin.pl</a>
   108  where you can find extended documentation, including **User Manual**.
   109  
   110  Please do not log github issues when you only have questions concerning this software.
   111  Instead see [Contact](http://gocoin.pl/gocoin_links.html) page at [gocoin.pl](http://gocoin.pl) website
   112  for possible ways of contacting me.
   113  
   114  If you want to support this project, I ask you to run your own Gocoin node, prefably with TCP port 8333
   115  open for the outside world. Do not hestiate to report any issues you find.