Git Product home page Git Product logo

tenqido / bitcoinunlimited Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bitcoinunlimited/bitcoinunlimited

0.0 2.0 0.0 68.11 MB

Bitcoin Unlimited integration/staging tree

Home Page: http://www.bitcoinunlimited.info/download.html

License: MIT License

Makefile 1.35% Shell 0.87% M4 2.28% Batchfile 0.35% QMake 0.02% Roff 0.05% Python 13.74% C++ 70.42% Objective-C 1.10% C 8.80% HTML 0.25% Objective-C++ 0.09% Assembly 0.34% Java 0.36%

bitcoinunlimited's Introduction

Website | Download | Setup | Xthin | Xpedited | Miner

Build Status

What is Bitcoin?

Bitcoin is an experimental new digital currency that enables instant payments to anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Bitcoin Unlimited is the name of open source software which enables the use of this currency.

For more information, as well as an immediately useable, binary version of the Bitcoin Unlimited software, see https://www.bitcoinunlimited.info/download, or read the original whitepaper.

License

Bitcoin Unlimited is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.

What is Bitcoin Unlimited?

Bitcoin Unlimited is an implementation of the Bitcoin client software that is based on Bitcoin Core. However, Bitcoin Unlimited has a very different philosophy than Core.

It follows a philosophy and is administered by a formal process described in the Articles of Federation. In short, we believe in market-driven decision making, emergent consensus, and giving our users choices.

Quick installation Instructions

If you're running an Ubuntu system:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin-unlimited/bu-ppa
sudo apt-get update
sudo apt-get install bitcoind bitcoin-qt

If you're compiling from source:

sudo apt-get install git build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-all-dev
## optional: only needed if you want bitcoin-qt
sudo apt-get install qttools5-dev-tools qttools5-dev libprotobuf-dev protobuf-compiler libqrencode-dev
## optional: only needed if your wallet use the old format
sudo apt-get install software-properties-common

## this not needed if your wallet will use the new
## format, or if you're not going to use a wallet at all
sudo add-apt-repository ppa:bitcoin-unlimited/bu-ppa
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev

mkdir -p ~/src
cd ~/src
git clone https://github.com/BitcoinUnlimited/BitcoinUnlimited.git bu-src
cd bu-src
git checkout release
./autogen.sh
./configure
make
sudo make install

For more detailed explanations on how compile from source just look at doc/build-*.md files (e.g. here)

Quick Startup and Initial Node operation

QT or the command line:

There are two modes of operation, one uses the QT UI and the other runs as a daemon from the command line. The QT version is bitcoin-qt or bitcoin-qt.exe, the command line version is bitcoind or bitcoind.exe. No matter which version you run, when you launch for the first time you will have to complete the intial blockchain sync.

Initial Sync of the blockchain:

When you first run the node it must first sync the current blockchain. All block headers are first retrieved and then each block is downloaded, checked and the UTXO finally updated. This process can take from hours to weeks depending on the node configuration, and therefore, node configuration is crucial.

The most important configuration which impacts the speed of the initial sync is the dbcache setting. The larger the dbcache the faster the initial sync will be, therefore, it is vital to make this setting as high as possible. If you are running on a Windows machine there is an automatically adjusting dbcache setting built in; it will size the dbcache in such a way as to leave only 10% of the physical memory free for other uses. On Linux and other OS's the sizing is such that one half the physical RAM will be used as dbcache. While these settings, particularly on non Windows setups, are not ideal they will help to improve the initial sync dramatically.

However, even with the automatic configuration of the dbcache setting it is recommended to set one manually if you haven't already done so (see the section below on Startup Configuration). This gives the node operator more control over memory use and in particular for non Windows setups, can further improve the performance of the initial sync.

Startup configuration:

There are dozens of configuration and node policy options available but the two most important for the initial blockchain sync are as follows.

dbcache: As stated above, this setting is crucial to a fast initial sync. You can set this value from the command line by running

bitcoind -dbcache=<your size in MB>, for example, a 1GB dbcache would be bitcoind -dbcache=1000. Similarly you can also add the setting to the bitcoin.conf file located in your installation folder. In the config file a simlilar entry would be dbcache=1000. When entering the size try to give it the maximum that your system can afford while still leaving enough memory for other processes.

maxoutconnections: It is generally fine to leave the default outbound connection settings for doing a sync, however, at times some users

have reported issues with not being able to find enough useful connections. If that happens you can change this setting to override the default. For instance bitcoind -maxoutconnections=30 will give you 30 outbound connections and should be more than enough in the event that the node is having difficulty.

bitcoinunlimited's People

Contributors

apoelstra avatar awemany avatar bissias avatar codeshark avatar cozz avatar deadalnix avatar fanquake avatar ftrader avatar gandrewstone avatar gavinandresen avatar gmaxwell avatar jonasschnelli avatar jtimon avatar justaphf avatar laanwj avatar luke-jr avatar marlengit avatar morcos avatar muggenhor avatar non-github-bitcoin avatar paveljanik avatar petertodd avatar pstratem avatar ptschip avatar sanch0panza avatar sdaftuar avatar sickpig avatar sipa avatar thebluematt avatar theuni avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.