Code Monkey home page Code Monkey logo

idigdoge's Introduction

I Dig Doge

Getting Started

First Run

  • Copy config.default.js to config.js, and fill it out with the appropriate details.
  • Install the dependencies using npm install.
  • In order to compile the SASS file, you need to install ruby and the sass gem. Something like sudo apt-get install ruby and sudo gem install sass.
  • Install grunt-cli globally using npm install grunt-cli --global. You may need to sudo that.
  • Build all the client-side JS and CSS files using grunt.
  • (Optional) Build the scrypt module by changing into the scrypt directory and running make node.

Running

I've gotten a few questions about running the application. So here's some snippets that will hopefully help people get started.

  • First of all, there's node server.js. It's your basic run command.
  • If you want to log the output to a file, you can add >> /tmp/file.log.
  • Putting & at the end of the command runs it in the background, so it won't be killed when you close your terminal window or SSH connection.
  • If you want to pass in options to the application, you put them at the beginning in the form of NODE_PORT=9870.

When you put them all together, you get what I use in my start script:

NODE_PORT=9870 NODE_ENV=production node server.js >> /tmp/server.log &

server.js

Options
  • NODE_ENV modifies settings specified in Environments.
  • NODE_PORT or PORT controls the port for HTTP requests. It will overwrite the setting in config.js. HTTPS is not yet supported.

payer.js

Options
  • NODE_CLEANUP is the number of milliseconds between cleanup actions, which removes old shares from the database and performs the BGREWRITEAOF command.

Environments

Express checks the NODE_ENV environment variable to know what features to turn on. I've configured two:

  • development serves files from the public directory. Logs requests to the console.
  • production does not serve files. Turns on trust proxy. Turns on view cache. Does not log requests. I run it behind NGINX, which I have set up to serve the files from the public directory and log everything.

Paying Out

This is a manual process right now, for a lot of reasons. You're welcome to automate it if you see fit though. Here's the basics of how it works. All of this goes on in the processing directory.

  • Connect to the redis database using redis-cli.
  • Run LRANGE withdraw 0 -1. You'll get something like this:
1) "{\"email\":\"[email protected]\",\"amount\":\"1\",\"address\":\"DM7BaRfSxUhvz8eJ9dHeChzEifJaP5poFL\"}"
2) "{\"email\":\"[email protected]\",\"amount\":\"1\",\"address\":\"DM7BaRfSxUhvz8eJ9dHeChzEifJaP5poFL\"}"
  • Copy the results into the data.txt file, and remove the line numbers and junk from the front. Like so:
"{\"email\":\"[email protected]\",\"amount\":\"1\",\"address\":\"DM7BaRfSxUhvz8eJ9dHeChzEifJaP5poFL\"}"
"{\"email\":\"[email protected]\",\"amount\":\"1\",\"address\":\"DM7BaRfSxUhvz8eJ9dHeChzEifJaP5poFL\"}"
  • Run the generate.js file. This will put the proper information into the output.json file, which will look like this since the above addresses are the same:
{
	"DM7BaRfSxUhvz8eJ9dHeChzEifJaP5poFL": 2.00000001
}
  • The payout.js file has the line that actually makes the transaction commented out by default. I run it once to make sure the balance will cover the transaction. If it will, I uncomment it, and run it again. When the transaction is made, the transaction ID will be logged. Or an error, depending on what actually happened.
  • To get rid of the processed transactions, run the command LTRIM withdraw # -1, replacing the number sign with the number of records processed. In the above example, it would be 2. This makes sure you don't remove any withdrawal requests that were made since the LRANGE command, because that would be bad.

Changes You Might Care About

Version 2.0.2

  • Use PORT or NODE_PORT environment variables.
  • The default config file is now separate.
  • There's options for which scrypt implementation you use.

Version 2.0.1

  • Minor changes for HTTPS.
  • Uses another scrypt implementation on the server for easier install.
  • Checks Dogecoin addresses properly, by decoding and validating the checksum.

Version 2.0.0

  • Brand new look.
  • Using Grunt for minifying and combining front-end files.
  • All the scrypt implementations use the same C++ code base.
  • In Chrome, we now use PNACL instead of JavaScript.
  • Switched to SASS for CSS.
  • The giant JS file has been split up into manageable chunks.

idigdoge's People

Contributors

7thstage avatar

Watchers

James Cloos avatar Rudolf avatar

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.