UNPKG

ibctminer

Version:

```js const IntMiner = require('./src'); const Debug = require('./src/log')(); const fs = require('fs'); const COMP = '[SIPC]';

234 lines (213 loc) 5.5 kB
```js const IntMiner = require('./src'); const Debug = require('./src/log')(); const fs = require('fs'); const COMP = '[SIPC]'; (async () => { var devState = [] var mode = 0 const miner = await IntMiner({ algoname: 'scrypt', minername: 'simplenode', cryptoname: 'sipc', protocolname: 'stratum' }); // init Mining await miner.initMining(); // set pool miner.setMiningConfig('pool', { host: `sipc.ss.dxpool.com`, port: 8008, user: `sunwei.b2`, pass: 'x' }) // start Mining await miner.connectMining(); await miner.startMining(null); miner.on('plug-in', async (data) => { Debug.IbctLogDbg(COMP, 'plug-in: ', data.devID); await miner.connectMining(); miner.startMining({ 'devID': data.devID }); }); miner.on('plug-out', data => { Debug.IbctLogDbg(COMP, 'plug-out: ', data.devID); // miner.stopMining({ 'devId': data.devID }); }); miner.on("error", function (devID, data) { if (devID) Debug.IbctLogErr(COMP, 'Miner' + devID + ':', data); else Debug.IbctLogErr(COMP, data); }); miner.on("warning", function (devID, data) { if (devID) Debug.IbctLogDbg(COMP, 'Miner' + devID + ':', data); else Debug.IbctLogDbg(COMP, data); }); setTimeout(function() { if (mode === 1) { Debug.IbctLogDbg(COMP, 'Burn Image') fs.readFile('./v0.0.3r.bin', (err, data) => { if (err) { Debug.IbctLogErr(COMP, err) } else { miner.BurnMiningFirmware(null, data, function (err, data) { if (err) { Debug.IbctLogErr(COMP, err) return } Debug.IbctLogDbg(COMP, 'Burn ', (data * 100).toFixed(1), '%') if ((data * 100).toFixed(1) === '100.0') { Debug.IbctLogDbg(COMP, 'Burn Complete') } }) } }) } else if (mode === 2) { Debug.IbctLogDbg(COMP, 'Reboot') miner.RebootMining(null) } else if (mode === 3) { Debug.IbctLogDbg(COMP, 'Set led on') miner.SetMiningLed(null, true) setTimeout(function() { Debug.IbctLogDbg(COMP, 'Set led off') miner.SetMiningLed(null, false) }, 5000) } else if (mode === 4) { Debug.IbctLogDbg(COMP, 'Stop Miner') miner.stopMining(null) } else if (mode === 5) { Debug.IbctLogDbg(COMP, 'Exit Miner') miner.exitMining() } }, 10000) setInterval(function () { devState = miner.getMiningStatus(); Debug.IbctLogDbg(COMP, JSON.stringify(devState)); }, 10000); })(); ``` 1. startMining() input: null: 所有设备开始挖矿 或: 指定设备开始挖矿 { “devID”: 0, } Output: null 2. stopMining() input: null: 关闭所有设备 或: 关闭指定设备 { “devID”: 0 } Output: null 3. getMiningStatus() input: null: 输出所有设备的状态 或: 输出指定设备的状态 { “devID”: 0, } Output: [ { “devID”: 0, “miningName”:“simplenode”, “miningSN”:“X10B92451F3EE7”, “miningType”:“sipc”, “state”: “on”, “version”: “V0.0.1”, “hashrate”: “845KH/s”, “avHashrate”: “820KH/s”, “hardwareErr”: 300, “rejected”: 100, “nonces”: 100, “accepted”: 100, “temperatue”: “50℃”, “elapsed”: “10h15m6s”, “pools”: { “host”: “sipc.ss.dxpool.com”, “port”: 8008, “user”: “sunwei.b2”, “pass”: “x” } } ] 4. RebootMining() input null: 关闭所有设备 或: 关闭指定设备 { “devID”: 0, } Output: null 5. SetMiningLed(Device, Enable) input Device: null: 关闭所有设备 或: 关闭指定设备 { “devID”: 0, “enable”: true } Status: true: 某种灯状态 或 false: 还原置灯之前的灯状态 6. BurnMiningFirmware(Device, Image, Callback) input Device null: 关闭所有设备 或: 关闭指定设备 { “devID”: 0, } Image 烧入镜像 烧入实例: burnFirmware() { fs.readFile('./head.bin', (err, data) => { if (err) { Debug.IbctLogErr(COMP, err); } else { miner.BurnMiningFirmware(null, data, function (err, data) { if (err) { Debug.IbctLogErr(COMP, err); return; } Debug.IbctLogDbg(COMP, 'Burn ', (data * 100).toFixed(1), '%'); if ((data * 100).toFixed(1) === '100.0') { Debug.IbctLogDbg(COMP, 'Burn Complete'); } }); } }); } 烧入完成请重新插拔矿机 7. setMiningConfig(setName, settings) input: setName: 可以设置矿机的类型,目前只支持'pool' settings: 设置值。 如果是pool: { host: `sipc.ss.dxpool.com`, port: 8008, user: `sunwei.b2`, pass: 'x' } 8. exitMining() input: null 释放miner相关资源 Output: null 9. connectMining(Device) input Device: null: 连接所有设备 或: 连接指定设备 { “devID”: 0, }