Skip to content

Commit

Permalink
ci: add snapcraft.yaml (#607)
Browse files Browse the repository at this point in the history
  • Loading branch information
MicaiahReid authored Jul 1, 2024
1 parent 3c347a2 commit 1779def
Showing 1 changed file with 77 additions and 0 deletions.
77 changes: 77 additions & 0 deletions snapcraft.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: chainhook
summary: A reorg-aware indexing engine for the Stacks and Bitcoin blockchains.
description: |
Blockchains serve as foundational infrastructure that unblocks new use
cases and introduces a new generation of decentralized applications by
relying on a public ledger.
`chainhook` is a reorg-aware transaction indexing engine that helps
developers get reliable blockchain data, regardless of forks and
reorgs. By focusing only on the data devs care about, Chainhook helps
developers work with much lighter datasets and build IFTTT logic into
their applications.
Chainhook can be used as a tool in your local development environment
and as a service in the cloud environment.
Key Features:
- **Faster, More Efficient Indexing:** Instead of working with a
generic blockchain indexer, taking hours to process every single
transaction of every single block, developers can create their own
indexes, build, iterate, and refine them in minutes. Chainhook can
help developers avoid massive storage management and storage scaling
issues by avoiding full chain indexation. Lighter indexes imply faster
query results, which helps minimize end-user response time. This leads
to an enhanced Developer Experience and an improved End-User
Experience.
- **Re-org and Fork Aware:** Chainhook keeps a store of possible chain
forks and checks each new chain event against the forks to maintain
the current valid fork. All triggers, also known as **predicates**,
are evaluated against the current valid fork. In the event of a reorg,
Chainhook computes a list of new blocks to apply and old blocks to
rollback and evaluates the registered predicates against those blocks.
- **IFTTT Logic, powering your applications:** Chainhook helps
developers create elegant event-based architectures using triggers,
also known as **predicates**. Developers can write “if_this /
then_that” **predicates**that when triggered, are packaged as events
and forwarded to the configured destination. By using cloud functions
as destinations, developers can also cut costs on processing by only
paying for processing when a block that contains some data relevant to
the developer's application is being mined.
adopt-info: chainhook-version

base: core22
confinement: strict


parts:
chainhook-version:
plugin: nil
source: .
override-pull: |
craftctl default
craftctl set version=$(git describe --tags --abbrev=0)
snapcraft-preload:
source: https://github.com/sergiusens/snapcraft-preload.git
plugin: cmake
cmake-parameters:
- -DCMAKE_INSTALL_PREFIX=/
build-packages:
- on amd64:
- gcc-multilib
- g++-multilib
chainhook:
plugin: rust
source: ./
build-packages:
- libssl-dev
- pkg-config
- libclang-11-dev

apps:
chainhook:
command: bin/snapcraft-preload $SNAP/chainhook
plugs:
- network
- network-bind
- mount-observe
- home
- desktop

0 comments on commit 1779def

Please sign in to comment.