<commit_before># Safire
Peer to Peer Digital Currency

Website: http://safire.org


<h2>Overview:</h2>

Safire is a distributed digital currency. Every user can send payments to any other user with a small fee. Users are rewarded for relaying network transactions with new currency issued at a rate determined by a group preference average.

Like Bitcoin it uses blocks to confirm pending transactions and validate them for all users across the network.

Unlike Bitcoin instead of blocks being formed by the first solver of a difficulty hashing function it uses a selection function to choose one user based on the current time. Only that user can create the block for the current time period using a signed message for which they keep a public private key pair they created when they joined the network. This means that before new users can send and receive transactions they have to be granted entry into the network through a membership entry in a new block.

New currency is issued to the block creator for each generated block. The amount of currency issued is based on a network wide preference average. Accounts not used by people for commerce are discouraged through currency inflation and reward commission if they don't support the network by staying up to date. 

Each user in the system can specify preferences for network behaviour. Because all users are known the averages for each setting can be used to alter core settings like inflation rates and block times.

Constraints on the the number of transactions that can be performed by the network are the propagation time for generated blocks to be sent to other nodes in the network and the amount of disk space required to store the data for each user. 

If the transfer takes longer than the block time, then the block creator following can be skipped. This creates a time gap between block times allowing nodes to catch up. 

Transactions older than two years are accumulated in the current year for each user so that older records can be cleared requiring disk storage for only current activity. 



<b>Key Benefits:</b>

1) Send and receive currency with anyone over the internet even if the recipient is not running. 

2) Users vote equally on the network and currency properties adjusting to future needs.

3) Currency is issued to users evenly for relaying transactions without the use of mining. Rewards are distributed evenly to all users that are able to stay up to date with relaying transactions. In mining networks rewards are unbalanced when the distribution of hashing power is uneven.

3) Decentralization and network capacity are strained mainly by current demand as old history is purged. In the long term the requirements to run the network will not increase with the entire history but only by current demand.

4) Graceful handling of excess capacity demands on the system. This means demand peaks transactions will take longer to confirm but the throughput of the network increases to compensate and catch up.


<b>Build:</b>

<b>Mac:</b> <br>
brew install ruby<br>
brew install libnice<br>

> make

<b>Linux: </b>
<br>
These build instructions were tested on Ubuntu 16.04.2 LTS. <br>
<commit_msg>Add Mac build instructions.<commit_after># Safire
Peer to Peer Digital Currency

Website: http://safire.org


<h2>Overview:</h2>

Safire is a distributed digital currency. Every user can send payments to any other user with a small fee. Users are rewarded for relaying network transactions with new currency issued at a rate determined by a group preference average.

Like Bitcoin it uses blocks to confirm pending transactions and validate them for all users across the network.

Unlike Bitcoin instead of blocks being formed by the first solver of a difficulty hashing function it uses a selection function to choose one user based on the current time. Only that user can create the block for the current time period using a signed message for which they keep a public private key pair they created when they joined the network. This means that before new users can send and receive transactions they have to be granted entry into the network through a membership entry in a new block.

New currency is issued to the block creator for each generated block. The amount of currency issued is based on a network wide preference average. Accounts not used by people for commerce are discouraged through currency inflation and reward commission if they don't support the network by staying up to date. 

Each user in the system can specify preferences for network behaviour. Because all users are known the averages for each setting can be used to alter core settings like inflation rates and block times.

Constraints on the the number of transactions that can be performed by the network are the propagation time for generated blocks to be sent to other nodes in the network and the amount of disk space required to store the data for each user. 

If the transfer takes longer than the block time, then the block creator following can be skipped. This creates a time gap between block times allowing nodes to catch up. 

Transactions older than two years are accumulated in the current year for each user so that older records can be cleared requiring disk storage for only current activity. 



<b>Key Benefits:</b>

1) Send and receive currency with anyone over the internet even if the recipient is not running. 

2) Users vote equally on the network and currency properties adjusting to future needs.

3) Currency is issued to users evenly for relaying transactions without the use of mining. Rewards are distributed evenly to all users that are able to stay up to date with relaying transactions. In mining networks rewards are unbalanced when the distribution of hashing power is uneven.

3) Decentralization and network capacity are strained mainly by current demand as old history is purged. In the long term the requirements to run the network will not increase with the entire history but only by current demand.

4) Graceful handling of excess capacity demands on the system. This means demand peaks transactions will take longer to confirm but the throughput of the network increases to compensate and catch up.


<b>Build:</b>

<b>Mac:</b> <br>
git checkout https://github.com/jon34560/Safire.git<br>
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"<br>
brew install ruby<br>
brew install libnice<br>
brew install boost<br>

make mac<br>

./bin/Safire<br>

<b>Linux: </b>
<br>
These build instructions were tested on Ubuntu 16.04.2 LTS. <br>

{'fraction_non_alphanumeric': 0.031311749506003954, 'fraction_numerical': 0.004407964736282109, 'mean_word_length': 4.469659185369909, 'pattern_counts': {'":': 0, '<': 38, '<?xml version=': 0, '>': 39, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2382490', 'n_tokens_mistral': 1524, 'n_tokens_neox': 1440, 'n_words': 1050}