Lex Pool (A rewritten pool based on uray source)

  • Hi Guys,

    just uploaded the modification i made to Urays source to prevent ghost blocks, forks and negative balances.

    the method i chose to detect block winner has a huge performance advantage over the prior method reducing load on the server/computer/resource its ran on.


    • Download and install Node.js from https://nodejs.org/en/download/

    • Download the Pool and extract to any folder: https://github.com/SOELexicon/burst-pool

      Important Notice - Do not use the version that Pascal66 has forked on github as i cannot support his changes.
      he's basically gone removed all the credits and deleted a feature asked by the users here that supports development.
      there is no difference besides from the node version it runs.
      his node v6 & v7 fork breaks backwards compatibility with mine at the cost of no additional features

      • you're folder "burst-pool-master" should look like this:
      • Now edit the file "burst-pool-config.js" as you want.
    redirection : { //a useful feature if you ever have to swap hosts 
        enabled : false,
        target : '' // so change the on the old server config to the new servers ip and enabled to true then it should forward all the requests. **tip** - make sure you also change a few characters in the old servers passphase so the pool doesnt accidentally pay out twice
    walletIndex: 0,
    blockMature : 1, //<-- Block mature (amount of blocks to go back and check for block winner (Fork Avoidance)
    txFeePercent : 0.0005,
    devFee : true,// that if enabled would send [devFeePercent] of the pools earnings as a developer fee to myself after a few requests of people wanting to support the project. 1% works out to be less than 25 coins. getting lower each month.
    devFeePercent : 0.01,// <-- pool owners can choose the percent they wish to donate to development
    poolFee : 0.01, //<---- pool fee
    poolDiff : 1000000,
    poolDiffCurve : 0.75,
    poolPort : 8124, //<-- port miner uses to communicate data
    poolPvtKey : '<pool private key>',// <- should be your pool account passphrase
    poolPublicRS : 'BURST-F3XD-Y4M5-SN8C-G9FFJ',// <---- your pool burst id
    poolPublic : '16732464642587527083', // <---- your pool burst numeric id
    poolFeePaymentAddr : '17572168194578653714', //<----your wallet fee payment burst id numeric
    defaultPaymentDeadline : 1440, 
    poolFeePaymentTxFeeNQT : 100000000,
    httpPort : 80, //<--- Pool http port 
    websocketPort : 4443, //(Web Socket Port)
    enablePayment : true, //(disables payout)
    minimumPayout : 250.0, // removed in prior version
    clearingMinPayout : 20.0, //min payout threshold before payments are sent to pending. in pool payments.json
    lastSessionFile : 'last-session.json', //unused
    cumulativeFundReduction : 0.5, //% of the block reward to reserve for each prior round.
    logWebsocketToConsole : false, //show web-socket info in console
    maxRoundCount : 97, // max amount of rounds to hold shares in memory for
    sharePenalty : 0.001, 
    maxRecentPaymentHistory : 50 //max amount of lines to show in paymentHistory

    The webpage is in the folder "client" edit as you want.

    • After editing all files, you can Run "START POOL.cmd", should appears a window like this one:
      0_1480175419883_upload-9fe356a3-af4e-41e4-84ec-fdf7f3b1dea4 obs: You need a Local Wallet running with Block-chain up to date.

    please donate for development to the address's below. it would be much appreciated as this took a good few months to track down, fix and implement.

    if you could kindly give me credits somewhere on your pool site it would be much appreciated

    [Burst] BURST-ZPPL-BV2U-VVZN-8DJX7 [Bitcoin] 1EWqGpP96Jx2gnD4UQBEoMrdpJPmLpdKJH

    Commit History
    *** Jan 19, 2017***
    Limit post requests over port 80
    0_1484819485941_upload-b4c3a67e-5ecf-4bde-bd90-36245a6e8f76 Jan 18, 2017
    add aditional miner image

    Dec 26, 2016
    increase spacing



    added some simple documentation


    Logger Module

    add the following code at the top of the other js files in the directory
    var poolLogging = require('./burst-pool-logger');

    usage is like this

    to turn off and on toggle var enabled = false;

    do not leave on as can cause problems on large pools due to the time it
    takes to open a large file and write to it

    add getDateTime Function and show miner type

    getDateTime added so users can add times to console output. added a
    simple example with best deadline.

    also added icon display for various miner types. so users with blago who
    get a best deadline get shown with blago's icon. same with andriod. and
    jminer. unknown ones will come up with a ? icon

    Dec 12, 2016
    Configurable Development Fee %
    added so owners have better control on the amount they wish to donate to
    furfer development towards the project

    Dec 10, 2016
    blockMature-ConfigOption to backdate blockwin
    option to check back x amount of blocks for blockwinner. this delay gives the block time chance to properly identify who the winner is and helps avoid forks

    Nov 29, 2016
    send payment bugfix
    bug that caused payments not to send

    Nov 26, 2016
    Payments On New Block Rewrite
    Completely Rewrite the payment procedure to go off detecting dedecting
    the winner rather than a change in balance.
    0_1482777029123_upload-33d8eed8-52ba-4e71-b41b-5c1d9cdd426f 0_1482777153971_upload-0be78d13-5884-40a0-beb0-b4a1b3fd6720

    Nov 14, 2016
    Initial commit change read me
    update old info

    someone missed an update i did to this where there was an additional setting "devFee" that if enabled would send 1% of the pools earnings as a developer fee to myself after a few requests of people wanting to support the project. it works out to be less than 25 coins. getting lower each month.


  • admin

    For network stability I urge uray pool hoster to update their codebase.

    Users, please inform your pool admins.

    Thank you lexicon!

  • Lexi,

    This is huge; thank you so much for this upgrade. I'm not sure that people that just mine or trade on Polo understand the torment of forks and detection not to mention the performance requirements of Burst Mining Pools when they are being hit by hundreds of submissions in the first couple seconds of every new block. It's like an iceberg where the tip of the problem is exposed on the forums when people yell fork at Ninja or Burst-Team and yet there is a 2000 ton beast flowing under the water as databases corrupt forward and have to be rolled back or be rebuilt.

    As a thank you to Lexi anyone that runs this new software I urge you to set in your burst-pool-config.js the poolFeePaymentAddr to '17572168194578653714' <-- Lexi's wallet and let it run for a while to show him how much we as a community appreciate what he has done.

    My hat is off to you sir.


  • @IceBurst man thanks for the support its much appreaciated.

    with the fee address change i wrote in a feature in the config called devFee. if this is true it will sent me 1% as well as whoever is in the poolFeePaymentAddr field. :).

    i added this for those who want to support this project.

  • hi guys, the release i had up had a small bug with sending payments. in my haste to get this done i must of forgot to delete - prevFund so when the pool checked to see if the payments were greater than the balance. it would always pull back the balance as 0.

    this is now fixed in the latest release on github. (https://github.com/SOELexicon/burst-pool/commit/29f4bd87143509f0abab8fe1a33e4bbdca5a2a18)

  • 0_1480658817842_upload-68d5228a-b9cf-4cbe-8203-56b1bf7e12c2

  • @Burstde that error message usually means you dont have npm installed. or have another versoin that is missing the moment modules. try reinstalling npm and node 4.4

  • This post is deleted!

  • @Burstde it runs on node.js mate. you would need npm either way. theres no possible way you would of had the original pool running otherwise.

    in your old pool folder. move node_modules into the new pool or copy it. then try.

    NPM stands for Node Package Manager.

  • @Lexicon said in Lex Pool (A rewritten pool based on uray source):

    move node_modules

    Your right, that's funny carried that folder around for awhile not knowing why.

  • @Burstde said in Lex Pool (A rewritten pool based on uray source):

    @Lexicon said in Lex Pool (A rewritten pool based on uray source):

    move node_modules

    Your right, that's funny carried that folder around for awhile not knowing why.

    you can delete that folder and do a

    npm install 

    to pull the modules defined in the "package.json"

  • @Lexicon
    Funny thing just happened in your pool! Which makes me question the "payout scheme" a bit!
    I'm not questioning fairness because it could happen to everyone and it just is!-)

    So here whats happened: We won 3 Blocks in a row depleting all the "history shares". Which led to an huge payment for the last block winner.

    Third block win in a row


    it looks like "GAJL-...." squeezed in with a few Minutes deadline between the winner and my one hour dl (M2Y3-....)!
    So he got a little for his current shares. Nevertheless I'm happy for them!-)
    But I'm starting to think this is suboptimal! Because it somewhat defies the "pool thought". And you could probably win the whole block reward with an fast enough dl.

    edit: I put this here because it seems to be "uray mannerism" which cant be unset in the config. right?

    Btw. are the payments setup now to pay 50% to the winner no matter what dl he has? Saw you talking about it but I'm unsure.

  • @nixxda cheers buddy. it is on the list of things left to do and i did post it in my original thread in the pool announcements a few weeks ago. i have a local copy of the live pool that i use for testing to prevent pool downtime. i'm getting somewhere with these changes.

    is there any chance you can test the payout methods for me. ill let you know when ive uploaded the changes to payouts. it currently goes still goes off the standard uray payout code

    i thought of a minor issue with keeping the historic shares and keep paying out on them was if someone were to leave the pool and the pool hit 2-3 blocks in a row the round after he left. the user would be getting paid for being at another pool. however im thinking this issue might not crop up often and when it does the effects could be negligible

    i've got 3 types of payouts in mind

    • Reserve half of the block reward for the winner upon working out share payments ignore the block winners shares and payout the remaining burst and dont delete prior shares.

    • Reserve half of the block reward for the winner upon working out share payments ignore the block winners shares and payout the remaining burst and delete prior shares

    • Payout to each rounds shares but dont delete share history

    if theirs any others you can think of and also if there is one you would like me to do first let me know. ill make this somewhat of a priority when im between tasks

  • hej @Lexicon

    I had to think about your Ideas for a while!-)

    So basicly we have got this two suboptimal cases where one is keeping the historic shares and continue to payout even when somebody left. And the other is resetting historic shares which leads to the problem I described above.
    If I had to weighing them against each other I'd say that the first one probably happens more often but less Coins would be involved!?
    Or is it exactly the same since one would always lose on historic shares?? I'm unsure...
    Goal would be to make it the least "painful" for all the miners actually mining there!

    Personally I liked the Idea of paying out 50% to the block winner. Because he's the winner no matter what deadline he had!-)
    And it enshures that you dont get under 1000 for winning (for the time being!)

    But my numbers dont ad up! I might still not have understood the uray payout fully. More thinking.......

    as for testing, sure fire away! If you've got some dev pool running at an other port tell me! But I've only got one miner. Maybe I'll get my ACD account back next week then I've got two.

  • @nixxda it is to be honest quite hard to get right as that difference could of been tx fees. yesterday my pool hit a block with a 4000+ tx fee which would of sqewed any results. ill be interested to see the data this was based off if possible. https://cdn.discordapp.com/attachments/234305723285110786/255789393971773440/unknown.png

  • @Lexicon Block data you mean?!
    http://pools.cryptodex.io/home seams to have issued 4 assets and payed 1000 Burst each. 1 2 3 4 !-)

  • Hello! New Burstminer looked everything over and am quite impressed.

    I do want to set up my own pool, and given this is really the only up to date pool program I can find, I want to use this.

    But im running into trouble. First, the files I get dont have the batch file for setting everything up.

    I have ran npm install, but running node burst-pool throws errors (have to get them from the system itself,Ill post them later)

    Any steps with your new files that I may be missing?

    Also, in the Pool Fee, the percentages is listed such as 0.00015

    Why is that? intuitively 1.5% would be .015 ...

    THanks for the assist

  • @Valareos Are you running a wallet? The conf.js is the setup file and yes .00015 s a typo lol try .015 instead.

  • @tross I am running a wallet (downloading blockchain now), ive set up the burst-pool-config file (though Ill go and change the percentages now LOL)

    Ill log onto the server here now and post the error im recieving

  • commas are a bane of my existance. was missing one, all works now it looks like