Code Monkey home page Code Monkey logo

distri-node's People

Contributors

flarp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

distri-node's Issues

Get rid of hashcash and (dynamic) timeouts

These extra features bloat the software and I would like it to be a minimalistic as possible, per the Unix philisophy. Instead, a work_submitted event will be added, that returns the work, the result the user submitted, and their websocket instance. The server admin may do what they please with this result. This would require another Promise thing, like how workgroup_complete is, but that can be worked around with default functions.

Add risk mode and minimum users

Risk mode is when not all of the results submitted are equal, but most are. The result that takes up more than 50% of the submissions will be considered correct.

Minimum users is how many unique users there must be until work will be distributed.

Make Distri more modular

As of now, Distri is really kind of a crazy mix of code, some of which doesn't even need to be there. One main thing I am thinking about removing is the equalityPercentage functionality, and in return, allow a user to define functions to check solutions themselves, with custom event emitters for a workgroup being completed, a workgroup being accepted, and a workgroup being rejected. This will probably be added before New Years, but I'm announcing it now because nobody is fucking reading this.

Fix verification strength in static mode

Verification strength breaks in static mode. This needs to be fixed ASAP, as it renders the program unusable in static mode until then. (Note, if verification strength is on one, the program will work just fine. However, verification strength is one of the main features of the program, so it would be nice if it actually worked.)

Publish package on npm

Since this is an node module, it'd be helpful if it were on npm. It'd increase visibility of the package, make it easier to find, and to install.

Add dynamic timeouts

This is going to be tough, but I'm thinking of adding dynamic timeouts. (This is not related to the dynamic or static modules.)

What is does is it gets the averages of all the times it took for people to finish the problem who weren't timed out, and use it as the next timeout limit. So, if the average time it took for 30 people to complete a problem was 10 seconds, and the user-defined timeout was 100 seconds, the timeout would be changed to 10 seconds. This could be a problem as people with slow computers could be kicked out wrongfully, and spammers could constantly be sending bork results in record amounts of time, setting the timeout so low it's not even possible with a super computer to have a valid result sent back in time.

Another thing is to get the slowest time it took for someone to send it back in who was not timed out. Say, if the timeout is 30 seconds and the slowest time it took for someone to send it in was 26 seconds, that would be the new timeout, This could work much better but might not speed things up too much.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.