Build blockchain application states in Swift on top of the Tendermint consensus. This can be combined with Swift ABCI, which allows to build ABCI Servers in Swift to communicate with a Tendermint consensus.
This is work in progress.
The current focus is to provide the structures required to store the state, namely Merkle trees (in this repository) and iAVL+ trees (in https://github.com/cosmosswift/swift-iavlplus).
We are using the Go Tendermint codebase as a starting point, and implementing the Swift code in a Swifty way.
Requires Swift 5.2.x, on MacOS or a variant of Linux with the Swift 5.2.x toolchain installed.
git clone https://github.com/cosmosswift/swift-mint.git
cd cosmosswift
swift build
In your Package.swift
file, add the repository as a dependency as such:
import PackageDescription
let package = Package(
name: "MyCosmosSwiftApp",
products: [
.executable(name: "MyCosmosSwiftApp", targets: ["MyCosmosSwiftApp"]),
],
dependencies: [
.package(url: "https://github.com/cosmosswift/swift-mint.git", from: "0.3.0"),
],
targets: [
.target(name: "MyCosmosSwiftApp", dependencies: ["Merkle"]),
]
)
Other than use the ProofOperatorProtocol
, there is not much practical use to this repo as of now.
-
import CosmosSwift
-
Compile and run
Compile:
- run
swift build
The docs for the latest tagged release are always available at https://katalysis.gitlab.io/open-source/cosmosswift/.
For bugs or feature requests, file a new issue.
For all other support requests, please email [email protected].
SemVer changes are documented for each release on the releases page.
Check out CONTRIBUTING.md for more information on how to help with CosmosSwift.
Check out CONTRIBUTORS.txt to see the full list. This list is updated for each release.