<commit_before># uCoin [![Build Status](https://api.travis-ci.org/c-geek/ucoin.png)](https://api.travis-ci.org/c-geek/ucoin.png)

uCoin is a free server-side software allowing to create new P2P crypto-currencies based on individuals and Universal Dividend.

It is mainly inspired from [OpenUDC project](https://github.com/Open-UDC/open-udc) for that purpose, but differs defining its own open currency protocol called UCP (UCoin Protocol).

## Development state

Software is still under development, and is not used yet. **This means no currency using uCoin exists for now**.

However, it is hoped to build a new currency in a near future according to the following roadmap:

1. uCoin has to be tested, thus a beta currency will be planned
2. If beta is convincing, and in a collective agreement process, a brand new money will be started
3. New softwares will need to be coded:
  * A ready-to-be-signed amendments generator
  * Siblings of uCoin in other programming languages
  * Clients and GUIs to interact with uCoin servers
  * Analysis softwares
  * ...

So, there is still lot of work. *But*, all this is not required in short-term.

## Features

**Peer-to-peer crypto-currency**

uCoin fully relies on OpenPGP standard to describe crypto-currencies, provide P2P synchronization mecanisms and allow data distribution.

**Universal Dividend - by people, for people**

uCoin uses [Human Dividend Currency format](https://github.com/c-geek/ucoin/blob/master/doc/HDC.md) to describe the monetary system, where money is issued directly and exclusively **by** individuals of the Community to themselves. Individuals are the only ones who may issue new money, and choose the unities they desire : this is a monetary system where **U** coin.

**Democratic**

In a uCoin currency, money is legitimated by collectively signed documents. *De facto*, uCoin implies a democratical process in money issuance and community membership.

**Humanity scale compliant**

uCoin uses a distribution system for its transactions database, allowing for potentially humanity scale currencies. Indeed, billions of people making together millions of transactions per second is not likely to be handled by every unit of a PC made network. That is why uCoin transactions database is distributed.

## Specifications

You can get more in uCoin project reading the following documents:
* [Concepts](https://github.com/c-geek/ucoin/blob/master/doc/concepts.md)
* [Technical specifications](https://github.com/c-geek/ucoin/blob/master/doc/architecture.md)

## Installation

### Environment

uCoin was already tested and should be working on majority of Debian-based systems. To work, it requires the following softwares:

* nodejs (0.10+)
* gnupg
* mongodb

### Node.js

uCoin is powered by Node.js v0.10+, so you need it installed first. Here is an example for Ubuntu installation:

```bash
$ sudo apt-get update
$ sudo apt-get install python-software-properties python g++ make
$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install nodejs
```

You can find the installation of Node.js for other distribution [on this GitHub document](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager).

### GnuPG + MongoDB

It's that simple:

```bash
$ sudo apt-get install mongodb gnupg
```

### uCoin from git repository

And then, just install uCoin:

```bash
$ git clone <EMAIL>:c-geek/ucoin.git
$ sudo npm install ./ucoin -g
```

## Get uCoin run

Launch it using the following command:
<commit_msg>Update readme: add npm installation<commit_after># uCoin [![Build Status](https://api.travis-ci.org/c-geek/ucoin.png)](https://api.travis-ci.org/c-geek/ucoin.png)

uCoin is a free server-side software allowing to create new P2P crypto-currencies based on individuals and Universal Dividend.

It is mainly inspired from [OpenUDC project](https://github.com/Open-UDC/open-udc) for that purpose, but differs defining its own open currency protocol called UCP (UCoin Protocol).

## Development state

Software is still under development, and is not used yet. **This means no currency using uCoin exists for now**.

However, it is hoped to build a new currency in a near future according to the following roadmap:

1. uCoin has to be tested, thus a beta currency will be planned
2. If beta is convincing, and in a collective agreement process, a brand new money will be started
3. New softwares will need to be coded:
  * A ready-to-be-signed amendments generator
  * Siblings of uCoin in other programming languages
  * Clients and GUIs to interact with uCoin servers
  * Analysis softwares
  * ...

So, there is still lot of work. *But*, all this is not required in short-term.

## Features

**Peer-to-peer crypto-currency**

uCoin fully relies on OpenPGP standard to describe crypto-currencies, provide P2P synchronization mecanisms and allow data distribution.

**Universal Dividend - by people, for people**

uCoin uses [Human Dividend Currency format](https://github.com/c-geek/ucoin/blob/master/doc/HDC.md) to describe the monetary system, where money is issued directly and exclusively **by** individuals of the Community to themselves. Individuals are the only ones who may issue new money, and choose the unities they desire : this is a monetary system where **U** coin.

**Democratic**

In a uCoin currency, money is legitimated by collectively signed documents. *De facto*, uCoin implies a democratical process in money issuance and community membership.

**Humanity scale compliant**

uCoin uses a distribution system for its transactions database, allowing for potentially humanity scale currencies. Indeed, billions of people making together millions of transactions per second is not likely to be handled by every unit of a PC made network. That is why uCoin transactions database is distributed.

## Specifications

You can get more in uCoin project reading the following documents:
* [Concepts](https://github.com/c-geek/ucoin/blob/master/doc/concepts.md)
* [Technical specifications](https://github.com/c-geek/ucoin/blob/master/doc/architecture.md)

## Installation

### Environment

uCoin was already tested and should be working on majority of Debian-based systems. To work, it requires the following softwares:

* nodejs (0.10+)
* gnupg
* mongodb

### Node.js

uCoin is powered by Node.js v0.10+, so you need it installed first. Here is an example for Ubuntu installation:

```bash
$ sudo apt-get update
$ sudo apt-get install python-software-properties python g++ make
$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install nodejs
```

You can find the installation of Node.js for other distribution [on this GitHub document](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager).

### GnuPG + MongoDB

It's that simple:

```bash
$ sudo apt-get install mongodb gnupg
```
### uCoin from npm repository (recommended)

This fetches ucoin using npm. Fast & easy to do:

```bash
$ sudo npm install ucoin -g
```

### uCoin from git repository

This just fetch & install uCoin (development state):

```bash
$ git clone <EMAIL>:c-geek/ucoin.git
$ sudo npm install ./ucoin -g
```

## Get uCoin run

Launch it using the following command:

{'fraction_non_alphanumeric': 0.08556815040088471, 'fraction_numerical': 0.0030411943599668234, 'mean_word_length': 4.423538230884557, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3887009', 'n_tokens_mistral': 2167, 'n_tokens_neox': 2036, 'n_words': 912}