Gridcoin

BOINC Introduction

  • First of all, if you just want to be an investor in Gridcoin, you can skip the following steps which explain how to set up a mining environment for Gridcoin. In that case, you will just need to install the Gridcoin Wallet.
  • To get Distributed-Proof-of-Research (DPOR) payments, you will have to participate in one or more projects of the Berkeley Open Infrastructure for Network Computing (BOINC). BOINC is a platform for universities and research groups to upload small packages of their research. These small packages, known as workunits, contain parts of calculations and numerical problems which your home computer can solve. You can find more information here and on Wikipedia.

Step 1A: Install BOINC on the platform of your choice

Select your operating system (click the buttons):

Microsoft Windows

  • Download the installer, then double-click the installer icon.
  • Most of the projects do not need the installation of VirtualBox, so the download link on the right side should be sufficient. More information about VirtualBox can be found here.
  • You can set install options by clicking the "Advanced" button on the configuration screen. The options are:
    • Program directory - where BOINC's program files will be stored.
    • Data directory - where BOINC's data files will be stored. This will be a hidden directory. Where it is is shown in the BOINC start up messages.
    • Use BOINC screensaver - Use the BOINC screensaver for the current user.
    • Protected application execution - Run project applications under an unprivileged account. This provides increased protection against faulty applications, but it prevents BOINC from using your GPU, and it may cause graphics to not work with older applications.
    • Allow all users on this computer to control BOINC - If selected (public mode), all users can control BOINC (attach/detach projects, etc.). If not selected (private mode), the only users who can control BOINC are: the installing user, members of the Administrator group, and members of the 'boinc_users' group. When other users run the BOINC Manager, they'll be shown a dialog saying to contact the administrator to add them to the 'boinc_users' group.
  • To run BOINC invisibly, choose the "Protected application execution" option, then delete the BOINC shortcut from the Start/Programs/BOINC and Start/Programs/Startup menus (locate BOINC in each menu, right-click, select Delete). You can still run the BOINC Manager by going to C:\Program Files\BOINC and double-clicking on boincmgr.exe

macOS

  • Download the installer.
  • If your browser has not already done so, expand the zip archive by double-clicking on it in the Finder.
  • Double-click on the BOINC Installer application to run the installer, then follow the prompts.
  • Close the installer when it is finished. This will automatically launch the BOINC Manager.
  • If you want BOINC to be your screen saver, open System Preferences from the Apple menu. Select Desktop & Screen Saver and select BOINCSaver.
  • The default location for data directory of BOINC is /Library/Application Support/BOINC Data . You may want to exclude this folder from Time Machine backup system to prevent increase of backup data size.
  • Several tools for macOS are available to:
  • Automatically run BOINC as a daemon or system service at boot time.
  • Improve security for stand-alone clients.
  • Prevent BOINC Manager from launching automatically when selected users log in.

Linux

  • You can install BOINC on a Linux computer in any of three ways:
    • Use the package management system of your Linux distribution;
    • Use the "Berkeley installer" provided by BOINC (a self-extracting archive, not distro-specific);
    • Build directly from source code.
Installing BOINC as a package
  • Some Linux distributions (Fedora, Ubuntu, Debian, Gentoo, possibly others) have BOINC packages that you can install using your your distro's package manager. Compared to using the Berkeley Installer, this has several advantages:
    • The resulting BOINC installation runs applications under an unprivileged account, and is therefore more secure.
    • The BOINC binaries are dynamically linked, therefore they require less memory than the binaries in the Berkeley Installer.
    • The package manager checks for dependencies and installs any additional libraries required to run BOINC on your Linux distro.
    • BOINC is installed as a daemon (BOINC runs automatically at boot time even if no user is logged in).
    • BOINC updates can be automated if your Linux distro has automated package update capability (most popular distros do)
  • If you want to use the packages from repositories, take into account that there are two packages that can be installed separately, one for BOINC Client and another for the BOINC Manager. Only the client part is required but you will likely want to install the manager as well unless you intend to manage the client from a remote host.
The Berkeley Installer
  • The Berkeley Installer is available directly from the BOINC project. It is a self-extracting archive. This type of installation requires that you be familiar with the UNIX command-line interface. The download files have names like boinc_7.2.23_i686-pc-linux-gnu.sh. After downloading the file, you'll need to be in the directory where you download the archive to unpack it.
  • Here is an example. The archive is downloaded to the desktop. It is then moved to the home directory (~). Finally BOINC is unpacked and installed. All of this can be done within a regular user account; root privileges are not needed.
  • $ mv ~/Desktop/boinc_7.2.23_i686-pc-linux-gnu.sh ~
    $ cd ~
    $ sh boinc_7.2.23_i686-pc-linux-gnu.sh
    
  • This creates a directory called 'BOINC/' under the home directory containing the following files:
    • boinc : The BOINC core client.
    • boincmgr : The BOINC Manager.
    • boinccmd : A command line tool for controlling a running core client.
    • run_client : A script that cd's into the BOINC directory and runs the core client.
    • run_manager : A script that cd's into the BOINC directory and runs the manager.
  • To start the client manually enter the following terminal commands:
  • $ cd ~/BOINC
    $ ./run_client --daemon
    $ ./run_manager
    
  • The BOINC working directory can be moved elsewhere as you like, and can even be renamed. One common choice is ~/.boinc, since files and directories with names that begin with "dot" do not show up by default in Unix directory listings. Whatever the name, everything related to the BOINC client is contained within that directory, and you should always run the client and the manager from that working directory.
Build from Source
  • BOINC is open source software. You can download the source code and build your own BOINC client, if you so desire. It's not as easy as either of the two methods above, but it may turn out to be more interesting. And some people might even be interested in contributing to the ongoing BOINC development efforts.
  • If you want to build BOINC on Linux, you need to keep in mind that BOINC consists of both client software and project server software. To run BOINC on your own Linux computer and contribute to existing projects you only need to build the client software.
  • Instructions for building BOINC from source code are in a separate developer's wiki. You will need to start with these pages:

FreeBSD

  • Go to /usr/ports/net/boinc-client/, open the Makefile in a text editor
  • Change the CONFIGURE_ARGS=--disable-server as follows:
    • On 32 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
    • On 64 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=x86_64-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
  • Do make install clean
  • If you receive an error like "ELF 0 ....", make sure you have installed
    • /usr/ports/emulators/linux_base-fc4 or higher
    • sysctl kern.elf32.fallback_brand=3
  • There is additional information on installing, configuring and running BOINC on FreeBSD.

How to install BOINC on an Anonymous Platform

  • BOINC applications are native-mode programs, so different versions are required for each platform (a "platform" is the combination of an operating system and a CPU architecture: e.g., Linux/Intel32). Each BOINC-based project has application versions for one or more platforms. When the BOINC client requests work from the project's server, the client tells the server its platform, and the server gives it the appropriate version.
  • This addresses the needs of most BOINC participants, but it's inadequate if:
    • your computers have platforms not supported by BOINC or by the project;
    • for security reasons, you want to only run executables you have compiled yourself;
    • you want to optimize applications for particular architectures.
  • To handle these cases, BOINC offers a mechanism called anonymous platform. This lets you build applications yourse1lf, or obtain them from a third party, rather than getting them from the project server. This can be used only for projects that make their source code available. As an example, see the instructions for SETI@home.
  • If the BOINC client is not available for your platform, you must build it yourself.
  • To use the anonymous platform mechanism for a particular project:
    • Get the project's application source code and compile it, or download an executable from a third party.
    • Run the BOINC client and attach to the project. This will create a 'project directory' (whose name is the project URL) in the BOINC directory. Exit the client. Put your executables in the project directory (macOS users: see note below).
    • Create a file app_info.xml in the project directory. This file describes the applications you have compiled or downloaded. Its format is described below.
    • Run the BOINC client again. When it requests work from the scheduling server, it will report its platform as 'anonymous' and send a list of the applications you have supplied. The server will sends tasks for those applications.
  • macOS note: When you add files inside the Mac's BOINC Data directory, you must set ownership and permissions properly. If you are using the BOINC Manager, simply run the BOINC Installer again. If you are running the Unix command-line version, run the Mac_SA_Secure.sh shell script; it is bundled with the command-line BOINC Client and also available at Mac_SA_Secure.sh.
  • To switch back to using the project-supplied executables, delete the app_info.xml file and reset the project.
  • You may want to check out the following email lists (e.g. the port may already exist):
The format of app_info.xml
  • The file app_info.xml is an XML description of the applications you have compiled or downloaded. It has elements describing the files that make up the application, and describing the attributes of the application. The format is as follows:
  • <app_info>
    <app>
    <name>setiathome_enhanced</name>
    </app>
    <file_info>
    <name>setiathome_6.6_windows_intelx86.exe</name>
    <executable/>
    </file_info>
    <file_info>
    <name>setiathome_graphics_6.6_windows_intelx86.exe</name>
    <executable/>
    </file_info>
    <app_version>
    <app_name>setiathome_enhanced</app_name>
    <version_num>660</version_num>
    <api_version>6.1.0</api_version>
    [
    <coproc>
    <type>CUDA</type>
    <count>1</count>
    </coproc>
    ]
    [ <plan_class>cuda</plan_class> ]
    [ <flops>X</flops> ]
    [ <avg_ncpus>X</avg_ncpus> ]
    [ <max_ncpus>X</max_ncpus> ]
    [ <cmdline>args</cmdline> ]
    <file_ref>
    <file_name>setiathome_6.6_windows_intelx86.exe</file_name>
    <main_program/>
    </file_ref>
    <file_ref>
    <file_name>setiathome_graphics_6.6_windows_intelx86.exe</file_name>
    <open_name>graphics_app</open_name>
    </file_ref>
    </app_version>
    </app_info>
    
  • app_info.xml's elements include:
    • <version_num>: the application's version number.
    • <api_version>: the BOINC version number of the API the app uses.
    • <coproc>: describes a coprocessor requirement. The type element can refer to a GPU type specified in cc_config.xml.
    • <flops>: the expected FLOPS of the application (for multi-thread and coprocessor apps).
    • <avg_ncpus>: the average number of CPUs used by the app.
    • <max_ncpus>: the max number of CPUs used by the app.
    • Generally this should match the corresponding elements in a scheduler reply message (sched_reply_URL.xml), except that the <platform> element should be removed.

Other sources of BOINC client software

Site Platforms Programs available
http://www.dotsch.de/boinc (Lars Bausch) AIX(Power/PowerPC)
DragonflyBSD(i386)
FreeBSD(Alpha, i386, IA64, SPARC64, x64)
HP-UX 10.x/11.x/11i (PARISC+IA64)
IRIX 6.5.x
Linux(Alpha, HPPA, IA64, MIPS Big Endian+Little Endian(EL), PPC/Power, Playstation 3 (PS3), Power64, SPARC, zSeries)
macOS Intel+PPC
NetBSD(i386, MIPS Little Endian(EL), PowerPC/Power, x86_64)
OpenBSD(Alpha, i386, SPARC64, x64)
Solaris(SPARC+x86)
TRU64
BOINC client, SETI@home Enhanced Multibeam, SETI@home Enhanced and Astropulse
Stefan Urbat Solaris: SPARC, AMD64 (Opteron), x86, i686
Linux: Alpha, SPARC, AMD64 (Opteron), PowerPC, Itanium, s390
HP-UX: PA RISC and Itanium/IA64 (includes BOINC Manager)
Tru64: Alpha
AIX: Power4 and later
OpenBSD: x86
NetBSD: x86
FreeBSD: x86, Alpha
BOINC core client, SETI@home
SETI@SummoneR.mikrocomp.hu OpenBSD: amd64 (x86_64) BOINC core client and SETI@home Enhanced non-graphical
SETI-Linux Linux: i686, Athlon-XP, AMD64, Pentium 3.
Some Links to other Platforms
BOINC, SETI@home
SOLARIS@x86 Solaris 9 on Intel x86 BOINC core client, SETI@home
lunatics.kwsn.net Linux and Windows/x86 BOINC and SETI@home. Also, How-Tos for BOINC and SETI@home compilation for Linux and Windows.
alioth.debian.org; installation instructions at wiki.debian.org Debian and Ubuntu GNU/Linux: i386, amd64
Debian GNU/Linux: alpha, armel, hppa, ia64, m68k, mips, mipsel, powerpc, s390 and sparc
Debian GNU/kFreeBSD: kfreebsd-amd64 and kfreebsd-i386
Debian GNU/Hurd: hurd-i386
BOINC core client , BOINC manager and SETI@home
nekochan.net SGI Irix 6.5.22 and above BOINC client 5.4.9 and SETI@home enhanced 5.12
FreeBSD.org FreeBSD on a variety of hardware. BOINC core client , SETI@home
BOINCpe Run BOINC from a RAM disk, on machines with as little as 256 MB RAM BOINC core client and Manager
macnn.com macOS BOINC core client, SETI@home app
www.rechenaugust.de/boinc 32-bit and 64-bit Linux OpenSuse 11 6.10.58 and 6.12.x BOINC clients

Step 1B: Choose BOINC projects from the whitelist

Whitelist justification
  • The whitelist was created to increase security and to focus user's resources on active projects.
  • Without a whitelist, there was the potential for malicious BOINC projects being created for users to solomine for GRC, or potentially to infect gridcoin users with malware.
Whitelist discussion/scrutiny
Please note:
  • You will only be rewarded for whitelisted BOINC projects.
  • Any BOINC work done outside of the whitelisted BOINC projects will not be rewarded.
Confused by the above?

Step 1C: Sign up to chosen BOINC projects

Foreword prior to proceeding:
  • The email address is the link which connects your computer’s BOINC work to Gridcoin, so it is important to use the same email address in every BOINC project as well as in the configuration file of Gridcoin which will be explained later.
  • Each project has to be connected to Gridcoin by joining the team Gridcoin in every project.
  • Researchers are only rewarded for contributing towards whitelisted BOINC projects!
  • Try to match projects to meet your computer's capabilities. If you do not have ASICs, you should not try to participate in ASIC projects like Bitcoin Utopia. Similarly, if you do not have a GPU, don’t participate in GPU projects like Asteroids@home. The Gridcoin whitelist shows the specific requirements of each project.
  • There are two methods of adding BOINC projects; these are to manually setup each project one at a time, or to use an account manager service to speed up the process.
  • Pros of using an account manager:
    • Single Sign On: One password for BOINC to remember.
    • Manage computer resources & configuration from one location.
    • Manage all BOINC projects from one management portal online.
  • Cons of using an account manager:
    • Single Sign On: If your account manager's credentials are compromised, then all of your boinc project accounts will be compromised.
Select your prefered BOINC registration method:

Manually setting up projects

  • As an example, we will use the project Leiden Classical, a CPU only project.
  • After starting the BOINC Manager, you are asked to add a project or use an account manager. Select the 'add a project' radio button.
  • After clicking “Next“ we choose the desired project.
  • The following step, after clicking “Next”, is to open an account or login to an existing one. For some projects you have to register directly on the homepage of the project. Remember, the email address has to be the same for every project if you want to be paid in Gridcoins.
  • The project is added now and will start with research-calculations if workunits are available. After pressing the “Finish” button the project homepage should open. If not, go to the project homepage (you can definitely find it via Google). You have to find the “Your Account” button and press it. The project homepage of a different project can look different, but should have the same functions!
  • Log in to your account.
  • After login, you have to join the Gridcoin team. Do this by clicking “find a team”.
  • Search for Gridcoin.
  • Click on team Gridcoin and then “Join”.
  • Repeat these steps for all projects you want to participate in.
  • In the simple view of the BOINC Manager the team is not displayed. To see it change to the “Advanced View”.
  • If the team is not displayed yet, click on the project and then on Update.
  • If you have added a whitelisted project and joined team Gridcoin, your computer should now be researching.

BOINC Account Manager Guide

  • Create a BAM! account here.
  • Wait for the activation mail, and activate your account.
  • Login to BAM! (the login box is at the top-right of this page).
  • Navigate to "Sign-up for projects" in the 'BAM!' menu and click the 'Create account' icon (icon) for every project you want to join.
  • Follow these steps to join team Gridcoin in each project:
    • Navigate to the Team page.
    • For each project you wish to contribute towards, tick the checkbox in the 3rd column.
    • Click the green 'Change/Join team' button at the bottom of the list of projects.
    • Enter 'Gridcoin' in the popup text field & click the 'Search' button.
    • The page will change to just the checked projects, and will show their respective results for the team 'Gridcoin' search query in a dropdown box.
    • Select team 'Gridcoin' in each dropdown menu & click the green 'Change/join team' button.
    • Click the orange 'back to overview' button.
  • Navigate to "My projects" in the 'BAM!' menu and select the projects that you want all your new hosts to attach to by click the "Attach new host by default" icon.
  • Attach your BOINC client to BAM!. The instructions are here.
  • The client will make two connections to BAM!. It will connect to all projects that are set to default attach.
  • Done! There are more options in BAM! to fine-tune settings and hosts. Browse around and read the F.A.Q. for details.