Skip to content

gagathos/iota-gpu-pow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iota-gpu-pow

POW node to do GPU POW for IOTA using ccurl

Getting Started

This requires a new-ish version of NodeJS. If you don't know how to use it, this script may not be for you.

Simple clone this repository then run "npm install" in the iota-gpu-pow directory.

IOTA API

In addition to using this as a POW-only field node, you can also use this to perform POW using the standard IOTA APIs. It can not perform other API calls, just attachToTangle.

In Javascript, for instance (using iota.lib.js)

const IOTA = require('iota.lib.js')
const iota = new IOTA({host : 'https://field.carriota.com', port : 443}) // this is the normal iota api instance
const pow = new IOTA({host : 'http://localhost', port: 80}) //this is the POW only iota api instance

..... (use iota.api.* functions as normal)

pow.api.attachToTangle(trunk, branch, 14, trytes, callback)

There is a crude version of this in test.js of this repository.

More Info

This is currently a proof-of-concept to see if I can get remote dedicated POW servers working in CarrIOTA Field.

I have included my own version of libccurl.so but I recommend you compile your own in your own environment (I can't guarantee it will work on your computer)

If you compile it with OpenCL installed it will use your GPU.

If you access the remote POW from a browser (a GET request) it will print some basic statistics in JSON format.

Suggested Tweaks

You can change the max minimum weight magnitude to prevent abuse of your server with unreasonable POW requests with -m or --max-mwm

You can also change the port from default port 80 using -p PORT or --port PORT

dcurl can also generate a drop-in replacement for libccurl.so and get you a significant performance boost. Note that you will have to overwrite libccurl.so or create a symlink to libdcurl.so. You may have to compile it using the BUILD_COMPAT ?= 1 setting.

You can use iota-pow-benchmark to test different libraries and configurations to find which gets you the best performance.

Related Links

Field https://github.com/SemkoDev/field.cli

CCurl (Includes compile instructions) https://github.com/iotaledger/ccurl

CCurl Interface (Includes more compile tips) https://github.com/iotaledger/ccurl.interface.js

Donate, please!

My wife will kill me if she finds out how much work I'm doing for free!

IOTA: XDQPANWSMPBLIYPPNXKVVNQHNKSHDPJJL99ETQUDCYOSJXR9MAKZQVCFWTXUI9NXFOQIWTSONO9EQXYCPWJIMFZ9B

About

POW node to do GPU POW for IOTA using ccurl

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published