Git Product home page Git Product logo

catalystog's Introduction

Catalyst

Catalyst is an experimental digital currency and P2P payment system that allows users to quickly send and receive payments to and from anyone in the world. The system also contains many of the privacy & security features utilized by its fellow CryptoNote derivatives.

The following guide is based off of: https://github.com/bcndev/bytecoin/blob/master/README.md

Building on Linux 64-bit

All commands below are adapted for Ubuntu, other distributions may need a different command set.

Building with standard options

Create directory cstdev somewhere and go there:

$> mkdir cstdev
$> cd cstdev

To go futher you have to have a number of packages and utilities. You need at least gcc 5.4.

  • build-essential package:

    $cstdev> sudo apt-get install build-essential
    
  • CMake (3.5 or newer):

    $cstdev> sudo apt-get install cmake
    $cstdev> cmake --version
    

    If version is too old, follow instructions on the official site.

  • Boost (1.62 or newer): You'll need boost in the cstdev folder. We do not configure to use boost installed by apt-get, because it is sometimes updated without your control by installing some unrelated packages. Also some users reported crashes after find_package finds headers from one version of boost and libraries from different version, or if installed boost uses dynamic linking.

    $cstdev> wget -c 'http://sourceforge.net/projects/boost/files/boost/1.67.0/boost_1_67_0.tar.bz2/download'
    $cstdev> tar xf download
    $cstdev> rm download
    $cstdev> mv boost_1_67_0 boost
    $cstdev> cd boost
    $cstdev/boost> ./bootstrap.sh
    $cstdev/boost> ./b2 link=static -j 8 --build-dir=build64 --stagedir=stage
    cd ..
    
  • OpenSSL (1.1.1 or newer): Install OpenSSL to cstdev/openssl folder. (In below commands use switch linux-x86_64-clang instead of linux-x86_64 if using clang.)

    $cstdev> git clone https://github.com/openssl/openssl.git
    $cstdev> cd openssl
    $cstdev/openssl> ./Configure linux-x86_64 no-shared
    $cstdev/openssl> time make -j4
    $cstdev/openssl> cd ..
    

Git-clone (or git-pull) Catalyst source code in that folder:

$cstdev> git clone https://github.com/dirtybits/catalyst.git

Put LMDB source code in cstdev folder (source files are referenced via relative paths, so you do not need to separately build it):

$cstdev> git clone https://github.com/LMDB/lmdb.git

Create build directory inside catalyst, go there and run CMake and Make:

$cstdev> mkdir catalyst/build
$cstdev> cd catalyst/build
$cstdev/catalyst/build> cmake ..
$cstdev/catalyst/build> time make -j4

Check built binaries by running them from ../bin folder

$cstdev/catalyst/build> ../bin/catalystd -v

Building with specific options

Download amalgamated SQLite 3 and unpack it into cstdev/sqlite folder (source files are referenced via relative paths, so you do not need to separately build it).

Below are the commands which remove OpenSSL support and switch from LMDB to SQLite by providing options to CMake:

$cstdev> mkdir catalyst/build
$cstdev> cd catalyst/build
$cstdev/catalyst/build> cmake -DUSE_SSL=0 -DUSE_SQLITE=1 ..
$cstdev/catalyst/build> time make -j4

catalystog's People

Contributors

dirtybits avatar dominicjohnston avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

catalystog's Issues

[Pre-release][on Build] rpc_api_serialization.cpp:479:33: error: ‘catalyst::api::catalyst’ has not been declared

On June 04th, when building with current source, including the get_tip_segment rollback (Issue #7) and configuring the Catalyst_Network (Issue #8), the following error is faced:

rpc_api_serialization.cpp:479:33: error: ‘catalyst::api::catalyst’ has not been declared.

Issue has been identified and fix is on the way
(Rows 479 and 480 of rpc_api_serialization.cpp needs to be updated)

[Pre-release][on Build] error: could not convert 'false' from 'bool' to 'std::__cxx11::string

On June 7, 2018 I got the following error on build:

[ 56%] Building CXX object CMakeFiles/catalyst-core.dir/src/Core/TransactionBuilder.cpp.o
/home/xxxx/Documents/crypto/cstdev/catalyst/src/Core/TransactionBuilder.cpp: In member function ‘std::__cxx11::string catalyst::UnspentSelector::select_optimal_outputs(catalyst::Height, catalyst::Timestamp, catalyst::Height, size_t, size_t, catalyst::Amount, size_t, catalyst::Amount, std::__cxx11::string, catalyst::Amount*)’:
/home/xxxx/Documents/crypto/cstdev/catalyst/src/Core/TransactionBuilder.cpp:245:11: error: could not convert ‘false’ from ‘bool’ to ‘std::__cxx11::string’ {aka ‘std::__cxx11::basic_string<char>’}
    return false;
           ^~~~~
make[2]: *** [CMakeFiles/catalyst-core.dir/build.make:479: CMakeFiles/catalyst-core.dir/src/Core/TransactionBuilder.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/catalyst-core.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

I will look into this and update this entry as I go.

build failed

hi, just tried compiling on ubuntu and the build failed, im new to linux so have no idea how to fix it - it errors at about 32%

[Pre-release][on Build] error: no matching function for call to ‘catalyst::BlockChainState::get_tip_segment

When trying to build with master branch on May 25th (After merging pull request):

error: no matching function for call to ‘catalyst::BlockChainState::get_tip_segment(const catalyst::api::BlockHeader&, catalyst::Height&, bool) const’
auto timestamps_window = get_tip_segment(prev_info, blocks_count, false);

=> Related to src/Core/BlockChain.hpp
See commit @row47: dirtybits/catalyst@c3b8c62

When rollbacked, compilation succeeds.
Code missing to implement the current function ?

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.