Skip to content

Commit

Permalink
Streamline README content; add useful links
Browse files Browse the repository at this point in the history
- Remove Features and Concepts, Demos sections from README
  (this information is now on the website)

- Also remove the images used by the deleted "Features and Concepts" section
  (they're also on the website)

- Add Useful Links for docs, releases, community, and other key info
  (includes a link to the new splinter.dev/examples page)

- Fix line length

Signed-off-by: Anne Chenette <chenette@bitwise.io>
  • Loading branch information
Anne Chenette committed Jun 24, 2020
1 parent 012afcc commit 79d7e08
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 605 deletions.
98 changes: 15 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,80 +8,19 @@ transactions between organizations. Splinter lets you combine blockchain-related
technologies -- such as smart contracts and consensus engines -- to build a wide
variety of architectural patterns.

See [splinter.dev](https://www.splinter.dev/) for Splinter documentation,
release notes, and community information.
See [splinter.dev](https://www.splinter.dev/) to learn about Splinter.

&hercon; [Features](#features-and-concepts) &hercon; [Building Splinter](#building-splinter) &hercon; [Demos](#demos) &hercon; [License](#license) &hercon;
## Useful Links

## Features and Concepts

Splinter allows the same network to do two-party private communication,
multi-party private communication, and network-wide multi-party shared state,
all managed with consensus. A Splinter network enables multi-party or two-party
private conversations between nodes using circuits and services.

- A _**node**_ is the foundational runtime that allows an organization to
participate in the network.

- A _**circuit**_ is a virtual network within the broader Splinter network
that safely and securely enforces privacy scope boundaries.

- A _**service**_ is an endpoint within a circuit that sends and receives
private messages.

A Splinter application provides a set of distributed services that can
communicate with each other across a Splinter circuit.

![Splinter private circuits with shared state](assets/diagram-splinter-circuits+3companies.svg)

**Splinter is designed for privacy**

The key concepts of Splinter are fundamentally anchored to privacy.

- _**Circuits**_ define scope and visibility domains.
- _**Shared state**_, a database updated by smart contracts, is visible only
to the services within a circuit.

**Splinter is distributed and flexible**

Splinter works across a network

- _**State agreement**_ is achieved via the Merkle-radix tree in
[Hyperledger Transact](https://github.com/hyperledger/transact/),
allowing multiple services to prove they have the same data down to the
last bit, cryptographically.
- _**Consensus**_ is provided for creating real distributed applications.
Splinter currently includes **two-phase commit** for 2- or 3-party
conversations.
- _**Connections**_ are dynamically constructed between nodes as circuits are
created.


![Splinter smart contract deployment at runtime](assets/diagram-splinter-smartcontractdeployment.svg)

**Splinter is agile with smart contracts**

- Smart contracts _**capture business logic**_ for processing transactions.
- _**Runtime deployment**_ of smart contracts means no need to upgrade the
Splinter software stack to add business logic.
- _**Sandboxed WebAssembly smart contracts**_ keep the network safe and
ensure determinism.
- _**Scabbard**_, an out-of-the-box Splinter service that runs
[Sawtooth Sabre](https://github.com/hyperledger/sawtooth-sabre)
smart contracts across nodes, coordinated with consensus.

**Splinter is designed for applications**

- _**State delta export**_ allows an application to materialize the
Merkle-radix tree database to another database such as PostgreSQL.
Applications can read from the materialized database (just like any other
web application).
- _**Admin services**_ provide applications with a REST API to dynamically
create new circuits, based on business need.
- _**Authorization**_ for circuit management can be delegated to application
code and defined by business policies.

![Two-party Splinter circuit](assets/diagram-splinter-twopartycircuit.svg)
* [Splinter documentation](https://www.splinter.dev/docs/)
* [Release notes](https://www.splinter.dev/releases/)
* [Community information](https://www.splinter.dev/community/)
* [Other Splinter repositories](https://www.splinter.dev/community/repositories.html)
* [Example applications](https://www.splinter.dev/examples/)
* Related projects:
- [Hyperledger Grid](https://github.com/hyperledger/grid/)
- [Hyperledger Transact](https://github.com/hyperledger/transact/)
- [Sawtooth Sabre](https://github.com/hyperledger/sawtooth-sabre/)

## Building Splinter

Expand Down Expand Up @@ -112,19 +51,12 @@ example: `export 'CARGO_ARGS=-- --features experimental'`. To go back to
building with default features, unset the environment variable:
`unset CARGO_ARGS`

## Demos

Splinter includes an example application that you can run as a demo.
[Gameroom](examples/gameroom/) is a web application that allows you to set up a
dynamic multi-party circuit (called a "gameroom") and play tic tac toe (XO).

For more information, see the [Gameroom
README](https://github.com/Cargill/splinter/tree/master/examples/gameroom/README.md).

## License

Splinter software is licensed under the [Apache License Version 2.0](LICENSE) software license.
Splinter software is licensed under the [Apache License Version 2.0](LICENSE)
software license.

## Code of Conduct

Splinter operates under the [Cargill Code of Conduct](https://github.com/Cargill/code-of-conduct/blob/master/code-of-conduct.md).
Splinter operates under the [Cargill Code of
Conduct](https://github.com/Cargill/code-of-conduct/blob/master/code-of-conduct.md).
Loading

0 comments on commit 79d7e08

Please sign in to comment.