Fork of the yiimp Mining Pool focused on compatibility for mining LBRY Credits.
Find a file
Tanguy Pruvot cbe55a3a84 Squashed commit for segwit support:
commit c59abe5d203fabdabcca81ff5f9c6ff133cfae3b
Author: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Date:   Tue Nov 28 11:13:52 2017 +0100

    segwit: show a segwit icon on blocks history

    + remove some inline styles...

commit b4a8639370e6837ebc5a2047e7c334e9f931abfc
Author: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Date:   Tue Nov 28 09:55:40 2017 +0100

    segwit: cleanup + masternode case

    tested ok with BSD (block 400996), and with real BTX segwit txs (block 90958)

    also ok on VTC and GRS

commit 926dbd11757ebff7f7d4930266de9b9061c8ab16
Author: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Date:   Sat Nov 25 18:41:01 2017 +0100

    sql: add segwit fields, and ui config

    and fill block segwit field if it contains segwit txs,
    an icon is added in the dashboard "last blocks" for these blocks

commit 0b13bf55e9dd1d2229d188f0f8382b27642b20da
Author: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Date:   Sat Nov 25 13:47:20 2017 +0100

    segwit: include commitment in coinbase + .conf toggle

    tested ok on BTX, GRS and VTC with normal txs, but the commitment merkle hash maybe need some more love...

    so, to prevent useless bigger blocks, only generate segwit commitment if a segwit tx is present in mempool

    to check with real segwit txs... not seen any yet..

commit b508bc87943d9e426cda994c2f53c16c11e8d4c3
Author: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Date:   Thu Mar 2 11:18:34 2017 +0100

    segwit: prepare the witness data, but disabled

    need more test, may affect the coinbase merkle and the miners...

commit 19bd3a83b9ddddd8b5ed4b7a1bdf8cf8c233e346
Author: Tanguy Pruvot <tanguy.pruvot@gmail.com>
Date:   Thu Mar 2 10:30:29 2017 +0100

    stratum: handle and auto toggle segwit if supported
2017-11-28 11:55:20 +01:00
bin console: add kill_stratum bash script to reload an instance 2017-02-21 17:05:20 +01:00
blocknotify stratum: increase decred blocks purge time 2016-02-23 19:27:39 +01:00
blocknotify-dcr blocknotify-dcr: refresh glide and fix new build issue 2017-09-13 08:28:33 +02:00
log Some constants for the btc addr, email and site url.. 2015-07-02 21:17:04 +02:00
sql Squashed commit for segwit support: 2017-11-28 11:55:20 +01:00
stratum Squashed commit for segwit support: 2017-11-28 11:55:20 +01:00
web Squashed commit for segwit support: 2017-11-28 11:55:20 +01:00
.gitignore Fixes to handle the newer framework and jquery assets 2016-05-01 19:10:23 +02:00
rc.local tribus algo, nothing complicated... 2017-07-05 19:17:06 +02:00
README.md index: disable links to irc/forum for anonymous yiimp copies 2017-07-21 05:57:02 +02:00

#yiimp - yaamp fork

Required:

linux, mysql, php, memcached, a webserver (lighttpd or nginx recommended)

Config for nginx:

location / {
	try_files $uri @rewrite;
}

location @rewrite {
	rewrite ^/(.*)$ /index.php?r=$1;
}

location ~ \.php$ {
	fastcgi_pass unix:/var/run/php5-fpm.sock;
	fastcgi_index index.php;
	include fastcgi_params;
}

If you use apache, it should be something like that (already set in web/.htaccess):

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php?r=$1 [QSA]

If you use lighttpd, use the following config:

$HTTP["host"] =~ "yiimp.ccminer.org" {
        server.document-root = "/var/yaamp/web"
        url.rewrite-if-not-file = (
		"^(.*)/([0-9]+)$" => "index.php?r=$1&id=$2",
		"^(.*)\?(.*)" => "index.php?r=$1&$2",
                "^(.*)" => "index.php?r=$1",
                "." => "index.php"
        )

	url.access-deny = ( "~", ".dat", ".log" )
}

For the database, import the initial dump present in the sql/ folder

Then, apply the migration scripts to be in sync with the current git, they are sorted by date of change.

Your database need at least 2 users, one for the web site (php) and one for the stratum connections (password set in config/algo.conf).

The recommended install folder for the stratum engine is /var/stratum. Copy all the .conf files, run.sh, the stratum binary and the blocknotify binary to this folder.

Some scripts are expecting the web folder to be /var/web. You can use directory symlinks...

Add your exchange API public and secret keys in these two separated files:

/etc/yiimp/keys.php - fixed path in code
web/serverconfig.php - use sample as base...

You can find sample config files in web/serverconfig.sample.php and web/keys.sample.php

This web application includes some command line tools, add bin/ folder to your path and type "yiimp" to list them, "yiimp checkup" can help to test your initial setup. Future scripts and maybe the "cron" jobs will then use this yiic console interface.

You need at least three backend shells (in screen) running these scripts:

web/main.sh
web/loop2.sh
web/block.sh

Start one stratum per algo using the run.sh script with the algo as parameter. For example, for x11:

run.sh x11

Edit each .conf file with proper values.

Look at rc.local, it starts all three backend shells and all stratum processes. Copy it to the /etc folder so that all screen shells are started at boot up.

All your coin's config files need to blocknotify their corresponding stratum using something like:

blocknotify=blocknotify yaamp.com:port coinid %s

On the website, go to http://server.com/site/adminRights to login as admin. You have to change it to something different in the code (web/yaamp/modules/site/SiteController.php). A real admin login may be added later, but you can setup a password authentification with your web server, sample for lighttpd:

htpasswd -c /etc/yiimp/admin.htpasswd <adminuser>

and in the lighttpd config file:

# Admin access
$HTTP["url"] =~ "^/site/adminRights" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/etc/yiimp/admin.htpasswd"
        auth.require = (
                "/" => (
                        "method" => "basic",
                        "realm" => "Yiimp Administration",
                        "require" => "valid-user"
                )
        )
}

And finally remove the IP filter check in SiteController.php

There are logs generated in the /var/stratum folder and /var/log/stratum/debug.log for the php log.

More instructions coming as needed.

There a lot of unused code in the php branch. Lot come from other projects I worked on and I've been lazy to clean it up before to integrate it to yaamp. It's mostly based on the Yii framework which implements a lightweight MVC.

http://www.yiiframework.com/

Credits:

Thanks to globalzon to have released the initial Yaamp source code.

--

You can support this project donating to tpruvot :

BTC : 1Auhps1mHZQpoX4mCcVL8odU81VakZQ6dR