The commands in this guide should be executed in a Terminal application.
The built-in one is located in /Applications/Utilities/Terminal.app
.
Install the OS X command line tools:
xcode-select --install
When the popup appears, click Install
.
Then install Homebrew.
brew install automake berkeley-db4 libtool boost --c++11 miniupnpc openssl pkg-config protobuf qt libevent
If you want to build the disk image with make deploy
(.dmg / optional), you need RSVG
brew install librsvg
NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.
-
Clone the ion source code and cd into
ion
git clone https://github.com/cevap/ion cd ion
-
Build ion-core:
Configure and build the headless ion binaries as well as the GUI (if Qt is found).
You can disable the GUI build by passing
--without-gui
to configure../autogen.sh ./configure make
-
It is recommended to build and run the unit tests:
make check
-
You can also create a .dmg that contains the .app bundle (optional):
make deploy
Ion Core is now available at ./src/iond
Before running, it's recommended you create an RPC configuration file.
echo -e "rpcuser=ionrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Ion/ioncoin.conf"
chmod 600 "/Users/${USER}/Library/Application Support/Ion/ioncoin.conf"
The first time you run iond, it will start downloading the blockchain. This process could take several hours.
You can monitor the download process by looking at the debug.log file:
tail -f $HOME/Library/Application\ Support/Ion/debug.log
./src/iond -daemon # Starts the ion daemon.
./src/ion-cli --help # Outputs a list of command-line options.
./src/ion-cli help # Outputs a list of RPC commands when the daemon is running.
You can use Qt Creator as an IDE, for ion development. Download and install the community edition of Qt Creator. Uncheck everything except Qt Creator during the installation process.
- Make sure you installed everything through Homebrew mentioned above
- Do a proper ./configure --enable-debug
- In Qt Creator do "New Project" -> Import Project -> Import Existing Project
- Enter "ion-qt" as project name, enter src/qt as location
- Leave the file selection as it is
- Confirm the "summary page"
- In the "Projects" tab select "Manage Kits..."
- Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
- Select LLDB as debugger (you might need to set the path to your installation)
- Start debugging with Qt Creator
These steps can be performed on, for example, an Ubuntu VM. The depends system will also work on other Linux distributions, however the commands for installing the toolchain will be different.
First, install the general dependencies:
sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl
A host toolchain (build-essential
) is necessary because some dependency
packages (such as protobuf
) need to build host utilities that are used in the
build process.
All Apple builds must target an Apple SDK. From this SDK, a single directory is needed:
Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
This folder must be placed in the depends
folder. For more information on the full process for obtaining this folder, see here
An overview of SDKs can be found here
The SDK can be acquired as follows:
mkdir -p depends/SDKs
cd depends/SDKs
curl -sL https://github.com/phracker/MacOSX-SDKs/releases/download/MacOSX10.11.sdk/MacOSX10.11.sdk.tar.xz | tar xJ
cd ..
To build executables for OSX, install the following dependencies:
sudo apt-get install librsvg2-bin libtiff-tools cmake imagemagick libcap-dev libz-dev libbz2-dev python python-dev python-setuptools fonts-tuffy
Then build using:
cd depends
make HOST=x86_64-apple-darwin11
cd ..
./autogen.sh # not required when building from tarball
CONFIG_SITE=$PWD/depends/x86_64-apple-darwin11/share/config.site ./configure --prefix=/
make
-
Tested on OS X 10.8 through 10.12 on 64-bit Intel processors only.
-
Building with downloaded Qt binaries is not officially supported. See the notes in #7714