mirror of
https://github.com/tlsnotary/rs-merkle.git
synced 2026-01-07 22:13:57 -05:00
feat: better README.md (#2)
add a better readme, CONTRIBUTING.md and LICENSE.md files
This commit is contained in:
12
CONTRIBUTING.md
Normal file
12
CONTRIBUTING.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
|
||||||
|
|
||||||
|
## Pull Request Process
|
||||||
|
|
||||||
|
- Please update the [tests](./tests) to reflect the changes.
|
||||||
|
- Update any documentation comments if required.
|
||||||
|
- Bump the version number and update the README.md to reflect the changes that this Pull Request would represent. The versioning scheme we use is SemVer.
|
||||||
|
- You may merge the Pull Request in once you have the sign-off of the repo maintainer, or if you do not have permission to do that, you may request the second reviewer to merge it for you.
|
||||||
|
|
||||||
|
Thank you!
|
||||||
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2021 Anton Suprunchuk
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
65
README.md
65
README.md
@@ -1,18 +1,57 @@
|
|||||||
# rs_merkle
|
# rs-merkle
|
||||||
|
|
||||||
`rs_merkle` is the most advanced Merkle Tree library for Rust.
|
[](https://crates.io/crates/rs_merkle)
|
||||||
|
[](https://docs.rs/rs_merkle)
|
||||||
|
[](https://github.com/antouhou/rs-merkle/actions)
|
||||||
|
|
||||||
Basic features include creation and verification of merkle proofs from a set of leaves.
|
`rs-merkle` is the most advanced Merkle tree library for Rust. Basic features
|
||||||
This is often done in various cryptocurrencies.
|
include building a Merkle tree, creation, and verification of Merkle proofs for
|
||||||
|
single and several elements, i.e. multi-proofs. Advanced features include making
|
||||||
|
transactional changes to the tree and rolling back to any previously committed
|
||||||
|
tree state, similarly to Git.
|
||||||
|
|
||||||
Advanced features include being able to make transactional changes to a tree with
|
`rs-merkle` is
|
||||||
being able to roll back to any previous committed state of tree. This scenario is similar
|
[available on crates.io](https://crates.io/crates/rs_merkle), and
|
||||||
to Git and can be found in databases and file systems.
|
[API Documentation is available on docs.rs](https://docs.rs/rs_merkle/).
|
||||||
|
|
||||||
Merkle Trees, also known as Hash Trees, are used to verify that two or more parties have
|
## About Merkle trees
|
||||||
the same data without exchanging the entire data collection.
|
|
||||||
|
|
||||||
Merkle Trees are used in Git, Mercurial,ZFS, IPFS, Bitcoin, Ethereum, Cassandra and many more.
|
Merkle trees, also known as hash trees, are used to verify that two or more
|
||||||
In Git, for example, Merkle Trees are used to find a delta between the local and remote states,
|
parties have the same data without exchanging the entire data collection.
|
||||||
and transfer only the delta. In Bitcoin, Merkle Trees are used to verify that a transaction was
|
|
||||||
included into the block without downloading the whole block contents.
|
Merkle trees are used in Git, Mercurial, ZFS, IPFS, Bitcoin, Ethereum, Cassandra,
|
||||||
|
and many more. In Git, for example, Merkle trees are used to find a delta
|
||||||
|
between the local and remote repository states to transfer only the difference
|
||||||
|
between them over the network. In Bitcoin, Merkle trees are used to verify that
|
||||||
|
a transaction was included in the block without downloading the whole block
|
||||||
|
contents. ZFS uses Merkle trees to quickly verify data integrity, offering
|
||||||
|
protection from silent data corruption caused by phantom writes, bugs in disk
|
||||||
|
firmware, power surges, and other causes.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Add the following to your `Cargo.toml`:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[dependencies]
|
||||||
|
rs_merkle = "0.2"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
[Documentation is available on docs.rs](https://docs.rs/rs_merkle/).
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Everyone is welcome to contribute in any way or form! For further details,
|
||||||
|
please read [CONTRIBUTING.md](./CONTRIBUTING.md)
|
||||||
|
|
||||||
|
## Authors
|
||||||
|
- [Anton Suprunchuk](https://github.com/antouhou) - [Website](https://antouhou.com)
|
||||||
|
|
||||||
|
Also, see the list of contributors who participated in this project.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License - see the
|
||||||
|
[LICENSE.md](./LICENSE.md) file for details
|
||||||
Reference in New Issue
Block a user