/majorna

Simple cryptocurrency, in your browser.

Primary LanguageJavaScriptMIT LicenseMIT

Build Status

Majorna is an in-browser cryptocurrency utilizing web technologies including WebRTC and Web Crypto API. This repo contains source code for all Majorna components including server, miner, and web UI.

Blockchain

Blockchain (ledger of all transactions) is kept in its own repo.

Community

License

MIT

Development

Following information is for Majorna developers and contributors:

Deployment

Server requires following environment variables in production mode:

MAJORNA_FIREBASE_JSON
MAJORNA_FIREBASE_JSON_PATH # alternative

MAJORNA_GITHUB_TOKEN

MAJORNA_TX_SIGN_PRIVATE_KEY
MAJORNA_TX_SIGN_PRIVATE_KEY_PATH # alternative
MAJORNA_TX_SIGN_PUBLIC_KEY
MAJORNA_TX_SIGN_PUBLIC_KEY_PATH # alternative

MAJORNA_COINBASE_COMMERCE_API_KEY
MAJORNA_COINBASE_COMMERCE_WEBHOOK_SHARED_SECRET

MAJORNA_STRIPE_SECRET_KEY

Following environment variables are required to run the tests:

MAJORNA_FIREBASE_TEST_JSON
MAJORNA_FIREBASE_TEST_JSON_PATH # alternative

MAJORNA_GITHUB_TOKEN

MAJORNA_COINBASE_COMMERCE_API_KEY
MAJORNA_COINBASE_COMMERCE_WEBHOOK_SHARED_SECRET

MAJORNA_STRIPE_TEST_SECRET_KEY

Heroku Push

git subtree push --prefix server heroku master

# in case --force is needed
git push heroku `git subtree split --prefix server master`:master --force

Upgrading Packages

UI:

Server:

Hardcoded URLs

  • This readme
  • public/index.html
  • Client/server config files
  • Firebase Hosting
  • Firebase Auth: sign-in methods: authorized domains
  • console.developers.google.com/apis/credentials/oauthclient/ -> allowed redirect urls (test with new user registration)
  • Coinbase Commerce/Stripe webhooks, company email/website/support configurations, whitelisted hosted widget domains
  • GitHub organization description/majorna repo description
  • Reddit
  • Blog