Author

Topic: PHP Bitcoin Node Status Page (Read 10031 times)

member
Activity: 104
Merit: 10
June 23, 2017, 10:01:39 AM
#63
That was it.  Curl_init was blowing up.  While I had curl installed, I did not have curl-php.


I have this up and running on my dogenode and litenode now.  Very nice!  Now I have to figure out how to get that swanky dark screen working =)

Thank you for your hard work! 
newbie
Activity: 28
Merit: 0
June 23, 2017, 09:14:47 AM
#62
I am struggling with this. my vps gets a 500 error.

Is there anything in your PHP logs to check what the issue is? HTTP 500 errors are usually served when there's a configuration issue.

For example, is the curl library installed for PHP?
member
Activity: 104
Merit: 10
June 23, 2017, 08:36:36 AM
#61
I am struggling with this.  my vps gets a 500 error.
newbie
Activity: 28
Merit: 0
January 14, 2017, 03:43:50 AM
#60
Thread bump and feature update, you can now configure extra node types to graph via an array in the config file  Grin

See my node for an example (I've added breadwallet and bither clients to the default Core/Classic/BitcoinJ set).
newbie
Activity: 28
Merit: 0
September 18, 2016, 10:57:27 AM
#59
Is this good for php 7.x (I'm running 7.0.11) ?

This does indeed work with PHP7, my test node is running 7.0.10 Smiley
newbie
Activity: 2
Merit: 0
September 18, 2016, 10:19:08 AM
#58
Is this good for php 7.x (I'm running 7.0.11) ?
newbie
Activity: 4
Merit: 0
September 17, 2016, 11:37:16 AM
#57
This thing works great once I got everything worked out with the settings!

Thanks for creating and maintaining it.
newbie
Activity: 28
Merit: 0
January 12, 2016, 05:47:30 AM
#56
Very good, wish i had the skills to do that....... well done sir  Wink

Thats a great idea for a website, A site where nodes could register and receive donations from bitcoin users.  or a node pool where donations are spread among nodes depending on uptime.... maybe that already exists ?

Thanks Smiley

There already is a site where users can register Bitcoin addresses alongside their nodes - bitnodes.21.co.

It's not really exposed (you have to drill into the node details to see the address) but the data is there Smiley

My nodes:

https://bitnodes.21.co/nodes/188.65.59.69-8333/
https://bitnodes.21.co/nodes/185.122.56.197-8333/
https://bitnodes.21.co/nodes/31.220.7.136-8333/
hero member
Activity: 1106
Merit: 521
January 08, 2016, 11:52:25 AM
#55
Very good, wish i had the skills to do that....... well done sir  Wink

Thats a great idea for a website, A site where nodes could register and receive donations from bitcoin users.  or a node pool where donations are spread among nodes depending on uptime.... maybe that already exists ?
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
January 07, 2016, 01:13:30 PM
#54
No need to apologize, as you are allowed to bump your own thread, as long as there is 24 hours between your previous post and the new one. Wink
newbie
Activity: 28
Merit: 0
January 07, 2016, 12:22:24 PM
#53
OK, apologies for the double-post and bump, but in the interest of keeping the thread updated, I have made the following minor changes to the status page (thanks to Audun Larsen for the pull requests!):

  • Peer Geolocation: Country flag now displays the full country name on mouseover
  • Peer List: You can now ignore/filter the peer list by IP (in addition to the existing feature to ignore all Tor peers)
  • Peer List: Peers now have an inbound/outbound connection identifier
  • Peer List: Peer connected time and last send/receive are now relative times (i.e. "x minutes", rather than absolute timestamps
  • Bitnodes API: Corrected the Bitnodes API URL (removing the getaddr part which is no longer used)
  • Settings: You can now hard-code the PHP timezone if you don't have it set in php.ini
newbie
Activity: 28
Merit: 0
December 02, 2015, 05:22:28 AM
#52
Be nice if I could run a version on windows Cheesy

You should be able to run this on Windows - as long as you have PHP with the curl extension installed, plus a compatible webserver such as Apache.

The communication with bitcoind is done via RPC so there's no underlying Linux system calls done for the core functionality. The only OS-level Linux commands run are to get various system stats like disk usage, daemon uptime etc.
^.^
member
Activity: 81
Merit: 10
December 01, 2015, 07:04:52 PM
#51
Be nice if I could run a version on windows Cheesy
newbie
Activity: 28
Merit: 0
December 01, 2015, 01:30:44 PM
#50
Did this break your live demo?

Code:
Warning: require_once(./php/config.php): failed to open stream: No such file or directory in /srv/www/bitcoind-status/index.php on line 12

Fatal error: require_once(): Failed opening required './php/config.php' (include_path='.:/usr/share/php:/usr/share/pear') in /srv/www/bitcoind-status/index.php on line 12

Apologies - I reinstalled my servers a while back. The whole server is Puppetised and the status page config isn't (or at least wasn't) so it got missed - good spot!

I've temporarily stopped bitcoind on the boxes as it was making them quite swappy.

I've also added a slightly nicer error message when the config file isn't found, so it doesn't fall through to the PHP error.
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
December 01, 2015, 04:28:22 AM
#49
Did this break your live demo?

Code:
Warning: require_once(./php/config.php): failed to open stream: No such file or directory in /srv/www/bitcoind-status/index.php on line 12

Fatal error: require_once(): Failed opening required './php/config.php' (include_path='.:/usr/share/php:/usr/share/pear') in /srv/www/bitcoind-status/index.php on line 12
newbie
Activity: 28
Merit: 0
December 01, 2015, 03:48:48 AM
#48
Hi Craig,
Thanks for putting this together. Could you explain the few steps after it's downloaded from Github, where do I put the folder (or contents)?

Typically, you'll need to put the folder in /var/www on your server - this is normally where Apache serves content from. That said, you'll need to check the Apache configuration as it can vary from system to system.

You can also change Apache's configuration to serve content from a totally different directory (e.g. /srv/www) as long as the filesystem permissions allow Apache read access.

Apache will also need write access to wherever you configure it to place the cache files - I've set the default to be /tmp but this is cleared after every reboot, so it may not be appropriate in all cases.
newbie
Activity: 28
Merit: 0
August 14, 2015, 06:23:19 PM
#47
Just a quick bump - since my last update there's been a couple of minor improvements to the status page.

It can now report the bitcoin daemon uptime (though only on Linux systems), and you can also toggle displaying the node's IP off altogether.

As always, tips/comments/pull requests are appreciated Smiley
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
April 01, 2015, 02:54:30 AM
#46
Well, I just pulled again, removed everything but my config, redid my config and now it works. I guess I fucked it up somewhere along the line. Tongue
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
March 23, 2015, 11:25:31 AM
#45
1. I've cleared my cache multiple times, but that didn't the problem. What is the version of your bitcoind?
2. And I guess I fucked up the pull than, my bad!
newbie
Activity: 28
Merit: 0
March 23, 2015, 09:22:39 AM
#44
Nice! I already added something like that to my node, but it isn't as sophisticated, haha. Will update my node in a bit.

EDIT: Done. However, it seems that "Time Connected", "Last Send" and "Last Receive" doesn't work.
EDIT2: Your config.sample.php does not contain the "geolocate_peer_ip" option.

Re: EDIT1: You may need to refresh your cache. The data comes from the getinfo() RPC call, so I'd suggest turning on debug mode and checking the output inside the HTML comment.
Re: EDIT2 - Strange, It's in the version on GitHub here: https://github.com/craigwatson/bitcoind-status/blob/master/php/config.sample.php#L31
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
March 23, 2015, 08:50:54 AM
#43
Apologies for the double-post, but I've also added a little Monday present - geolocation-based flags for both the node and peer IP addresses Smiley

Demo: https://loki.vikingserv.net
Nice! I already added something like that to my node, but it isn't as sophisticated, haha. Will update my node in a bit.

EDIT: Done. However, it seems that "Time Connected", "Last Send" and "Last Receive" doesn't work.
EDIT2: Your config.sample.php does not contain the "geolocate_peer_ip" option.
newbie
Activity: 28
Merit: 0
March 23, 2015, 08:49:16 AM
#42
Apologies for the double-post, but I've also added a little Monday present - geolocation-based flags for both the node and peer IP addresses Smiley

Demo: https://loki.vikingserv.net
newbie
Activity: 28
Merit: 0
March 23, 2015, 05:15:51 AM
#41
hi craig,

I noticed this site, some 1/2 a year or so ago and relocated it after seeing your topic here;

http://176.10.116.242/xbt_cgi/node_status.pl?sortfield=syncnode&sortdirection=1

this is something (the stats from bitcoind) that you could easily incorporate into what you have already, I'd think..

All done - see my node at https://loki.vikingserv.net Smiley

Code is also updated on GitHub Smiley
zvs
legendary
Activity: 1680
Merit: 1000
https://web.archive.org/web/*/nogleg.com
March 23, 2015, 01:33:59 AM
#40
Can this be used with other cryptocurrencies?

It can indeed, as long as they respond over RPC in the same way bitcoind does - I know for a fact that the page works with the LTC node, and should work for most altcoins.
hi craig,

I noticed this site, some 1/2 a year or so ago and relocated it after seeing your topic here;

http://176.10.116.242/xbt_cgi/node_status.pl?sortfield=syncnode&sortdirection=1

this is something (the stats from bitcoind) that you could easily incorporate into what you have already, I'd think..
legendary
Activity: 1512
Merit: 1012
March 21, 2015, 07:13:50 PM
#39
Can this be used with other cryptocurrencies?

It can indeed, as long as they respond over RPC in the same way bitcoind does - I know for a fact that the page works with the LTC node, and should work for most altcoins.

Ok, thank you Smiley I'll try fiddling with this in the next few days...
newbie
Activity: 28
Merit: 0
March 21, 2015, 06:38:14 PM
#38
Can this be used with other cryptocurrencies?

It can indeed, as long as they respond over RPC in the same way bitcoind does - I know for a fact that the page works with the LTC node, and should work for most altcoins.
legendary
Activity: 1512
Merit: 1012
March 21, 2015, 06:20:37 PM
#37
Can this be used with other cryptocurrencies?
newbie
Activity: 28
Merit: 0
March 21, 2015, 05:43:48 PM
#36
I've now added Travis CI testing, including PHP syntax checking and PEAR standards compliance - should hopefully make contributions easier Smiley
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
March 16, 2015, 06:17:36 PM
#35
CraigWatson, will update my node right now and keep in the ribbon. Wink

EDIT: Done.
newbie
Activity: 28
Merit: 0
March 16, 2015, 06:11:32 PM
#34
Some more minor revisions:

I've reworked the CSS to be slightly flatter and more modern, and shipped with two different styles - "light" (default) and "dark" (viewable on my demo) - just edit config.php.

I've also added a "Fork me on GitHub" ribbon (toggleable via config.php) - I'd really appreciate it if everyone could keep the ribbon enabled to try and boost exposure for the code Smiley
sr. member
Activity: 542
Merit: 251
March 10, 2015, 08:35:59 PM
#33
This is a very interesting script thanks for making this. I am thinking about making a btc node because it has always been on my mind, but I never wanted to risk making one. Now I think I may make one just for the support of bitcoin.
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
March 10, 2015, 05:58:46 AM
#32
Yeah sure you can share the scripts with anyone. If you notice my name or link to my profile/node thats nice, but its not required. Best fitting license would probably be WTFPL or CC0. The little I wrote is public here -> http://213.165.91.169/whatdo.txt

Just a heads up though: I recently shared the complete collection of shell scripts and cronjobs with someone. Its currently not working even though they use the same Linux flavour. So you might have to look into rrdtool after all if you want something similar. Im currently[1] working on a ruby script that can feed several databases with a single request. Not sure where I will share it once its done, but Ill let you know somehow.


[1] a few lines a week, might take a while Sad
hero member
Activity: 770
Merit: 500
March 10, 2015, 05:34:21 AM
#31
It's pretty nice.
I'm going to see if I can get my router to point to my node and display the results.
newbie
Activity: 28
Merit: 0
March 10, 2015, 05:32:13 AM
#30
Is that supposed to be the size of the block chain? If so, you might want to  rephrase the label?

That's the amount of free disk space left on the node, so basically "the amount the blockchain can grow before I run out of space". Purely vanity and has no real purpose - but as with most things, can be controlled with a toggle switch in config.

I got the script for making graphs sent to me by Shorena, I could make it available if others want it too. Not sure if Shorena already made it available.

The graphs look nice, though I guess it's beyond the scope of this app for the moment - would be nice for a 2.0 release though! Would be interested to see what the code to generate the graphs is like - if you can check if Shorena is happy for the scripts to be made open source (a pre-requisite for the project) that would be awesome Smiley

It is possible to check your node on the leaderboard to see how you fare.

Nice, I may add this in future Smiley
full member
Activity: 196
Merit: 103
March 10, 2015, 05:16:14 AM
#29
Good work.

I noticed this "Free Disk Space: 19.39 GB" on https://loki.vikingserv.net/.

Is that supposed to be the size of the block chain? If so, you might want to  rephrase the label?

Also, shorena made some scripts, check these:
http://node.cryptowatch.com/
http://213.165.91.169/

I got the script for making graphs sent to me by Shorena, I could make it available if others want it too. Not sure if Shorena already made it available.

For those interested, there's also apparently a "high score list".

Check out these links:
https://getaddr.bitnodes.io/
https://getaddr.bitnodes.io/nodes/leaderboard/

It is possible to check your node on the leaderboard to see how you fare.
newbie
Activity: 28
Merit: 0
March 06, 2015, 02:40:43 PM
#28
Removed (by default) the remote port when displaying connected nodes.

As with most of the page's functionality, it's easily toggled via the config.php file Smiley
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
January 15, 2015, 07:57:35 AM
#27
Cheers for the comments and contributions - all are greatly appreciated Smiley
No problem Wink
newbie
Activity: 28
Merit: 0
January 15, 2015, 07:47:20 AM
#26
Thanks to a few more pull requests, we now have a few new features!

  • Can bypass the file-based cache system entirely -- please note that this could overload your Bitcoind with RPC calls, please use with caution!
  • Display if the node is running on testnet.
  • Display the currently running Bitcoind version

Cheers for the comments and contributions - all are greatly appreciated Smiley
newbie
Activity: 28
Merit: 0
January 11, 2015, 02:54:09 PM
#25
Also added: geolocation feature Smiley
newbie
Activity: 28
Merit: 0
January 11, 2015, 09:36:17 AM
#24
can you add FREE DISK SPACE ?

Code:
Free disk space:
    $bytes disk_free_space(".");
    
$si_prefix = array( 'B''KB''MB''GB''TB''EB''ZB''YB' );
    
$base 1024;
    
$class min((int)log($bytes $base) , count($si_prefix) - 1);
  
//  echo $bytes . '';
    
echo sprintf('%1.2f' $bytes pow($base,$class)) . ' ' $si_prefix[$class] . '';
?>

LIVE DEMO: http://btcaudio.eu/node/

Added, with feature switch Smiley
member
Activity: 74
Merit: 10
www.btcaudio.eu || LIVE-AUDIO-TICKER
January 11, 2015, 09:13:56 AM
#23
can you add FREE DISK SPACE ?

Code:
Free disk space:
    $bytes disk_free_space(".");
    
$si_prefix = array( 'B''KB''MB''GB''TB''EB''ZB''YB' );
    
$base 1024;
    
$class min((int)log($bytes $base) , count($si_prefix) - 1);
  
//  echo $bytes . '';
    
echo sprintf('%1.2f' $bytes pow($base,$class)) . ' ' $si_prefix[$class] . '';
?>

LIVE DEMO: http://btcaudio.eu/node/
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
January 11, 2015, 07:09:07 AM
#22
Awesome, great to know the page is being used.

I've just updated the code with a better Readme and wrapped the node sub-version in htmlspecialchars Smiley
Ah alright, going to pull again than. Setting it up was really easy, but I'm a Web dev so I guess it should be easy for me Tongue
newbie
Activity: 28
Merit: 0
January 11, 2015, 06:08:30 AM
#21
Well, I just setup Bitcoin node, just try this, hahaha. I have always wanted to run a Bitcoin node so now I had a reason to do so. The status page can be found here: click. Bitcoind is still syncing blocks though and has been doing so for the last 12 hours.


Awesome, great to know the page is being used.

I've just updated the code with a better Readme and wrapped the node sub-version in htmlspecialchars Smiley
copper member
Activity: 3948
Merit: 2201
Verified awesomeness ✔
January 11, 2015, 05:50:40 AM
#20
Well, I just setup a Bitcoin node, just give this try this. I have always wanted to run a Bitcoin node so now I had a reason to do so. The status page can be found here: click. Bitcoind is still syncing blocks though and has been doing so for the last 12 hours.
full member
Activity: 141
Merit: 100
January 10, 2015, 10:27:57 AM
#19
You need to sanitize the protocol subversion before displaying it to users.

Any particular reason?
Nevermind, the client does it for you these days: https://github.com/bitcoin/bitcoin/commit/a946aa8d3ec7009ac670eeb65a525efe5eeb6e84

I haven't been around for a while.
This fix was made at version 0.9 (if I read it correctly). When doing a "getpeerlist" on my own client (or visiting CraigWatson's status page), I see some clients still having <0.9.
I think htmlspecialchars() shouldn't hurt. It's better than potentially endangering webmasters who integrates the status page on a <0.9 node.
hero member
Activity: 583
Merit: 500
January 09, 2015, 10:23:02 AM
#18
something new, time to give it a shot.
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
January 09, 2015, 07:46:52 AM
#17
You need to sanitize the protocol subversion before displaying it to users.

Any particular reason?
Nevermind, the client does it for you these days: https://github.com/bitcoin/bitcoin/commit/a946aa8d3ec7009ac670eeb65a525efe5eeb6e84

I haven't been around for a while.

Welcome back Tongue
hero member
Activity: 560
Merit: 501
January 09, 2015, 07:13:04 AM
#16
You need to sanitize the protocol subversion before displaying it to users.

Any particular reason?
Nevermind, the client does it for you these days: https://github.com/bitcoin/bitcoin/commit/a946aa8d3ec7009ac670eeb65a525efe5eeb6e84

I haven't been around for a while.
newbie
Activity: 28
Merit: 0
January 09, 2015, 07:06:26 AM
#15
You need to sanitize the protocol subversion before displaying it to users.

Any particular reason?
hero member
Activity: 560
Merit: 501
January 09, 2015, 07:05:51 AM
#14
You need to sanitize the protocol subversion before displaying it to users.
sr. member
Activity: 377
Merit: 250
https://keybase.io/magicmann
January 08, 2015, 10:13:19 AM
#13
Would you consider adding something in the config files that would give users the option of displaying the connected user's IPs?

It already exists, just flip the 'display_peer_info' switch to TRUE -  a full readme is on the way though Smiley Smiley

Reference: https://github.com/craigwatson/bitcoind-status/blob/master/php/config.php#L20


My bad, I meant to not display it, but I see I can just ensure that's set to false.
newbie
Activity: 28
Merit: 0
January 08, 2015, 09:13:04 AM
#12
Would you consider adding something in the config files that would give users the option of displaying the connected user's IPs?

It already exists, just flip the 'display_peer_info' switch to TRUE -  a full readme is on the way though Smiley Smiley

Reference: https://github.com/craigwatson/bitcoind-status/blob/master/php/config.php#L20
sr. member
Activity: 377
Merit: 250
https://keybase.io/magicmann
January 08, 2015, 08:56:35 AM
#11
Would you consider adding something in the config files that would give users the option of displaying the connected user's IPs?
newbie
Activity: 28
Merit: 0
January 08, 2015, 07:03:37 AM
#10
Just improved a few things, including handling errors from RPC and responsifying the peer information tables, check out the live copy here: https://loki.vikingserv.net

A full README is next on the list! Smiley

This is fantastic. Likely going to fork it to use for a cryptocurrency I've been supporting and running nodes for.  Wink

Thanks, much appreciated - please feel free to tip/donate if you find it useful Smiley

Submitted a pull request with some potential improvements just now Smiley

Pull request merged Smiley
sr. member
Activity: 377
Merit: 250
https://keybase.io/magicmann
January 07, 2015, 10:41:39 PM
#9
This is fantastic. Likely going to fork it to use for a cryptocurrency I've been supporting and running nodes for.  Wink
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
January 07, 2015, 10:48:34 AM
#8
Submitted a pull request with some potential improvements just now Smiley
sr. member
Activity: 350
Merit: 250
★YoBit.Net★ 350+ Coins Exchange & Dice
January 07, 2015, 08:36:02 AM
#7
Very Nice, It might be nice to show some Peer Info, Who is connected, What version of bitcoind they use etc.

I can fork your code and add this if you like, You are welcome to use it.

MrF

Just added this - bit of a hacky implementation as it's not responsive, but responsive tables are annoying as hell Smiley

No thats good, Looks really neat.

Good Job Smiley

Would be nice to have multiple themes Smiley I will use this for my full node.
newbie
Activity: 28
Merit: 0
January 07, 2015, 08:14:40 AM
#6
Very Nice, It might be nice to show some Peer Info, Who is connected, What version of bitcoind they use etc.

I can fork your code and add this if you like, You are welcome to use it.

MrF

Just added this - bit of a hacky implementation as it's not responsive, but responsive tables are annoying as hell Smiley
sr. member
Activity: 350
Merit: 250
★YoBit.Net★ 350+ Coins Exchange & Dice
January 07, 2015, 06:08:42 AM
#5
Very Nice, It might be nice to show some Peer Info, Who is connected, What version of bitcoind they use etc.

I can fork your code and add this if you like, You are welcome to use it.

MrF
legendary
Activity: 1386
Merit: 1053
Please do not PM me loan requests!
January 07, 2015, 01:37:42 AM
#4
Looks nice! I'll have a look, maybe put it on my node.
hero member
Activity: 826
Merit: 500
January 06, 2015, 07:04:03 PM
#3
nice one
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
January 06, 2015, 07:03:20 PM
#2
I was about to suggest a cache, then I read your post again Cheesy
newbie
Activity: 28
Merit: 0
January 06, 2015, 06:52:47 PM
#1
After setting up my VPS as a full node, I thought it would be nice if I had some way of displaying it to the world.

My Node

https://odin.vikingserv.net

GitHub Code: https://github.com/craigwatson/bitcoind-status
Travis CI: https://travis-ci.org/craigwatson/bitcoind-status

Donations

BTC donations are also graciously accepted both direct to 174N2KwMzKYvYkCSx1kezrzfSQuJQEZY9T and also via ChangeTip  Smiley

TL;DR - Main Features
  • List of connected nodes, with optional geolocation
  • Simple file-based cache system to limit RPC calls
  • Ships with two different CSS styles - "light" (default) and "dark"
  • Generates and displays a donation QR code for donations
  • IP-based whitelist for clearing/bypassing the cache
  • Displays historical number of connections (requires the use of a stats-collecting cron job)
  • Displays graph showing peer type breakdown over time (requires the use of another stats-collecting cron job)

Full Features List
  • Peer list is filterable - you can ignore a set list of peer IPs and also Tor peers
  • Extra agent strings can be added to the peer type graph
  • Fully responsive mobile design, including connected nodes table
  • Can bypass the file-based cache system entirely
  • Displays free disk space
  • Can either display the node's IP address via the PHP $_SERVER variable, or from the Bitcoin Daemon
  • Display if the node is running on testnet
  • Display the currently running Bitcoind version
  • Optionally display the remote port when listing connected peers.
  • IP-based geolocation flags for both node and peer IP addresses
  • Optional "Fork me on GitHub" ribbon (toggleable via config.php, enabled by default)
  • Testing includes PHP syntax checking and PEAR standards compliance

Please note that disabling the cache could overload your Bitcoind with RPC calls, and also cause geolocation errors (the current geolocation provider is rate-limited to 120 requests per minute). Please use with caution!

I'd really appreciate it if everyone could keep the ribbon enabled to try and boost exposure for the code Smiley

Contributions

Please feel free to comment, suggest (or better still, contribute!) new features or improvements.

Wanted - PHP Test Writers!

I'd like to get more test coverage of my code to make contributions even easier - if anyone has any experience in writing PHP tests (either PHPunit or something else), please reach out.
Jump to: