You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Details about the protocol, including a great tutorial, can be found on the [wiki](https://github.com/hyperledger/indy-plenum/wiki).**
44
-
45
-
### Installing python 3.5 and libsodium:
46
-
47
-
**Ubuntu:**
48
-
49
-
1. Run ```sudo add-apt-repository ppa:fkrull/deadsnakes```
50
-
51
-
2. Run ```sudo apt-get update```
52
-
53
-
3. On Ubuntu 14, run ```sudo apt-get install python3.5``` (python3.5 is pre-installed on most Ubuntu 16 systems; if not, do it there as well.)
54
-
55
-
4. We need to install libsodium with the package manager. This typically requires a package repo that's not active by default. Inspect ```/etc/apt/sources.list``` file with your favorite editor (using sudo). On ubuntu 16, you are looking for a line that says ```deb http://us.archive.ubuntu.com/ubuntu xenial main universe```. On ubuntu 14, look for or add: ```deb http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main``` and ```deb-src http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main```.
56
-
57
-
5. Run ```sudo apt-get update```. On ubuntu 14, if you get a GPG error about public key not available, run this command and then, after, retry apt-get update: ```sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B9316A7BC7917B12```
58
-
59
-
6. Install libsodium; the version depends on your distro version. On Ubuntu 14, run ```sudo apt-get install libsodium13```; on Ubuntu 16, run ```sudo apt-get install libsodium18```
60
-
61
-
8. If you still get the error ```E: Unable to locate package libsodium13``` then add ```deb http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main``` and ```deb-src http://ppa.launchpad.net/chris-lea/libsodium/ubuntu trusty main``` to your ```/etc/apt/sources.list```.
62
-
Now run ```sudo apt-get update``` and then ```sudo apt-get install libsodium13```
63
-
64
-
**CentOS/Redhat:**
8
+
## Other Documentation
9
+
10
+
- Details about the protocol, including a great tutorial, can be found on the [wiki](https://github.com/hyperledger/indy-plenum/wiki).
11
+
- Please have a look at aggregated documentation at [indy-node-documentation](https://github.com/hyperledger/indy-node/blob/master/README.md) which describes workflows and setup scripts common for both projects.
12
+
13
+
## Indy Plenum Repository Structure
14
+
15
+
- plenum:
16
+
- the main codebase for plenum including Byzantine Fault Tolerant Protocol based on [RBFT](https://pakupaku.me/plaublin/rbft/5000a297.pdf)
17
+
- common:
18
+
- common and utility code
19
+
- crypto:
20
+
- basic crypto-related code (in particular, [indy-crypto](https://github.com/hyperledger/indy-crypto) wrappers)
21
+
- ledger:
22
+
- Provides a simple, python-based, immutable, ordered log of transactions
23
+
backed by a merkle tree.
24
+
- This is an efficient way to generate verifiable proofs of presence
25
+
and data consistency.
26
+
- The scope of concerns here is fairly narrow; it is not a full-blown
27
+
distributed ledger technology like Fabric, but simply the persistence
28
+
mechanism that Plenum needs.
29
+
- state:
30
+
- state storage using python 3 version of Ethereum's Patricia Trie
31
+
- stp:
32
+
- secure transport abstraction
33
+
- it has two implementations: RAET and ZeroMQ
34
+
- Although RAET implementation is there, it's not supported anymore, and [ZeroMQ](http://zeromq.org/) is the default secure transport in plenum.
35
+
- storage:
36
+
- key-value storage abstractions
37
+
- contains [leveldb](http://leveldb.org/) implementation as the main key-valued storage used in Plenum (for ledger, state, etc.)
65
38
66
-
1. Run ```sudo yum install python3.5```
39
+
## Dependencies
67
40
68
-
2. Run ```sudo yum install libsodium-devel```
41
+
- Plenum makes extensive use of coroutines and the async/await keywords in
42
+
Python, and as such, requires Python version 3.5.0 or later.
43
+
- Plenum also depends on [libsodium](https://download.libsodium.org/doc/), an awesome crypto library. These need to be installed
44
+
separately.
45
+
- Plenum uses [ZeroMQ](http://zeromq.org/) as a secure transport
- It's based on [AMCL](https://github.com/milagro-crypto/amcl)
49
+
- In particular, it contains BLS multi-signature crypto needed for state proofs support in Indy.
69
50
70
51
71
-
**Mac:**
52
+
## Contact us
72
53
73
-
1. Go to [python.org](https://www.python.org) and from the "Downloads" menu, download the Python 3.5.0 package (python-3.5.0-macosx10.6.pkg) or later.
54
+
- Bugs, stories, and backlog for this codebase are managed in [Hyperledger's Jira](https://jira.hyperledger.org).
55
+
Use project name `INDY`.
56
+
- Join us on [Jira's Rocket.Chat](https://chat.hyperledger.org/channel/indy) at `#indy` and/or `#indy-node` channels to discuss.
74
57
75
-
2. Open the downloaded file to install it.
58
+
## How to Contribute
76
59
77
-
3. If you are a homebrew fan, you can install it using this brew command: ```brew install python3```
60
+
- We'd love your help; see these [instructions on how to contribute](http://bit.ly/2ugd0bq).
61
+
- You may also want to read this info about [maintainers](https://github.com/hyperledger/indy-node/blob/stable/MAINTAINERS.md).
78
62
79
-
4. To install homebrew package manager, see: [brew.sh](http://brew.sh/)
80
63
81
-
5. Once you have homebrew installed, run ```brew install libsodium``` to install libsodium.
64
+
## How to Start Working with the Code
82
65
66
+
Please have a look at [Dev Setup](https://github.com/hyperledger/indy-node/blob/master/docs/setup-dev.md) in indy-node repo.
67
+
It contains common setup for both indy-plenum and indy-node.
83
68
84
-
**Windows:**
85
69
86
-
1. Go to https://download.libsodium.org/libsodium/releases/ and download the latest libsodium package (libsodium-1.0.8-mingw.tar.gz is the latest version as of this writing)
70
+
## Installing Plenum
87
71
88
-
2. When you extract the contents of the downloaded tar file, you will see 2 folders with the names libsodium-win32 and libsodium-win64.
72
+
#### Install from pypi
89
73
90
-
3. As the name suggests, use the libsodium-win32 if you are using 32-bit machine or libsodium-win64 if you are using a 64-bit operating system.
91
74
92
-
4. Copy the libsodium-x.dll from libsodium-win32\bin or libsodium-win64\bin to C:\Windows\System or System32 and rename it to libsodium.dll.
75
+
```
76
+
pip install indy-plenum
77
+
```
93
78
94
-
5. Download the latest build (pywin32-220.win-amd64-py3.5.exe is the latest build as of this writing) from [here](https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/) and run the downloaded executable.
79
+
From here, you can play with the command-line interface (see the [tutorial](https://github.com/hyperledger/indy-plenum/wiki)).
95
80
81
+
Note: For Windows, we recommended using either [cmder](http://cmder.net/) or [conemu](https://conemu.github.io/).
96
82
97
-
### Using a virtual environment (recommended)
98
-
We recommend creating a new Python virtual environment for trying out Plenum.
99
-
a virtual environment is a Python environment which is isolated from the
100
-
system's default Python environment (you can change that) and any other
101
-
virtual environment you create. You can create a new virtual environment by:
102
83
```
103
-
virtualenv -p python3.5 <name of virtual environment>
0 commit comments