lt_blockchain 0.1.0

Blockchain written with educational purpose by Learn Together Community.
Documentation
# Blockchain  [![status]https://github.com/Learn-Together-Pro/Blockchain/actions/workflows/Main.yml/badge.svg]https://github.com/Learn-Together-Pro/Blockchain/actions/workflows/Main.yml [![stability-experimental]https://img.shields.io/badge/stability-experimental-orange.svg]https://github.com/emersion/stability-badges#experimental

Blockchain written with educational purpose

### Prerequisites

Before running the build please make sure standart development environment is configured.

- [Git]https://git-scm.com/
- Stable version of [Rust]https://www.rust-lang.org/tools/install

**Linux**

You may need to install `build-essential`:

```
sudo apt update
sudo apt install build-essential
```

**MacOS**

Make sure you've installed `Xcode` and its developer tools:

```
xcode-select --install
```

**Windows**

You may need to install the [ Visual Studio C++ Build tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/)

### How to start

```
git clone https://github.com/Learn-Together-Pro/Blockchain.git
cd Blockchain
cargo run
```

### Commands

To rebuild:
```
cargo build
```

To run the probject:
```
cargo run
```

To test your changes:
```
cargo test
```

### Usage

To see commands list execute:
```
cargo run
```

Output:

```
.quit => Quit
.system.wipe => Clear data from blockchain
.system.log => Show system state
.system.difficulty => Difficulty set
.system.reward => Set reward
.transaction.create => Create transaction
.block.mine => Mine a block
.blocks.log => Show sys state
.wallet.create => Create waller
.wallet.log => Print information about a wallet
.wallets.log => Print information about all wallets

Please select :
```

To run the command type its name starting with **dot** char and press `Enter` key, for example:
```
Please select : .system.log
```

Some commands require additional information that will be asked:

```
Please select : .transaction.create
Sender :
```

### Tickets

- Implement routine `balance_get()`
-- should return for adresses which do not exist