Git Product home page Git Product logo

multidoge's Introduction

Introduction

MultiDoge is a Simplified Payment Verification (SPV) Dogecoin desktop client. It is ported from the MultiBit Bitcoin client. Huge thanks to the original devs for this awesome project!

MultiDoge relies on the following technologies:

  • Maven as the build system, so the usual Maven processes apply. If you're not familiar with Maven then download it first and follow their installation instructions.
  • ZXing ("Zebra Crossing") for QR codes
  • Dogecoinj for access to the Dogecoin network
  • IzPack for creating installers for Windows, Mac, Linux
  • Bitcoinj Enforcer Rules to prevent dependency chain attacks
  • XChange for access to several Bitcoin exchanges

A note on the Dogecoinj dependency

MultiDoge depends on a special fork of Dogecoinj for its Bitcoin support. This is due to legacy wallet serialization issues and the MultiDoge team are working towards a complete integration. To build MultiDoge you will need to clone this fork from here:

https://github.com/langerhans/dogecoinj-alice

Once cloned, you should then install the custom Dogecoinj library using

mvn clean install

Branching strategy

This follows the master-develop pattern.

There are 2 main branches: master and develop. The master branch is exclusively for releases, while the develop is exclusively for release candidates. The develop branch always has a Maven version of develop-SNAPSHOT.

Every GitHub Issue gets a branch off develop. When it is complete and code reviewed it is merged into develop.

When sufficient Issues are merged into develop to justify a release, a new branch off develop is created with the release number (e.g. release-1.2.3). The Maven pom.xml is updated to reflect the snapshot version (e.g. 1.2.3-SNAPSHOT).

Once the release has been tested and is ready to go live, the final act is to update the pom.xml to remove the SNAPSHOT suffix and merge it into master.

The master branch is then tagged with the release number. Tags are in the format v1.2.3 to distinguish them from branch names.

An announcement is made on the MultiDoge website to alert everyone that a new version is available.

Maven build targets

The important targets are:

mvn clean package

which will package the MultiDoge project into multidoge-x.y.z.jar where x.y.z is the current version number. This is suitable for local development work.

If you want to generate a complete set of multi-platform installers (Windows, Mac and Linux) you use the following command

maven clean install

After some processing, you will have the following artifacts in the target directory:

  • an executable jar = multidoge-exe.jar
  • a Mac application bundle = MultiDoge.app
  • a Mac DMG file = multidoge-x.y.z.dmg
  • an installer for Windows = multidoge-x.y.z-windows.exe
  • an installer for Linux = multidoge-x.y.z-linux.jar

To run MultiDoge from these artifacts you can follow the instructions provided on the main MultiDoge website

MultiDoge contains cut down JREs so is a large clone

The MultiDoge installers contain cut down JREs so the project clone is quite large. (100 to 200 MB).

Custom configuration

MultiDoge is quite flexible and has several features only accessible to power users through the configuration file. This is discussed in more detail in configuration.md

Contributing

If you want to contribute, please contact me at: [email protected].

multidoge's People

Contributors

jim618 avatar gary-rowe avatar hegjon avatar timmolter avatar da2ce7 avatar langerhans avatar kaloudis avatar colindean avatar hak8or avatar boutcher avatar thegoddambatman avatar

Stargazers

can420nabis 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.