https://github.com/factomproject/ptnet-eventstore
Smart contract protocol constructed using pflow Petri-nets
https://github.com/factomproject/ptnet-eventstore
blockchain petri-net protocol state-machine
Last synced: about 1 month ago
JSON representation
Smart contract protocol constructed using pflow Petri-nets
- Host: GitHub
- URL: https://github.com/factomproject/ptnet-eventstore
- Owner: FactomProject
- Created: 2018-10-29T15:59:02.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-25T02:08:23.000Z (about 2 years ago)
- Last Synced: 2025-04-11T04:39:49.355Z (about 1 month ago)
- Topics: blockchain, petri-net, protocol, state-machine
- Language: Go
- Homepage: https://project.factom.com/ptnet-eventstore/
- Size: 575 KB
- Stars: 2
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ptnet-eventstore
Prototype gRPC evenstore service.
Construct Markov chains backed by CockroachDB or PostgreSQL databases.
Uses Petri-Nets as state machines to validate events before appending to a eventstore.
## Status
[](https://circleci.com/gh/FactomProject/ptnet-eventstore)
Alpha - Seems to function in a development environment
Not tested under load.
## Factom Asset Tokens Compatiblity
The Ultimate aim is to develop a datastore
that maps onto the smart contract platform provided by https://github.com/Factom-Asset-TokensRead the FATIP - draft specification [./fatip.md](./fatip.md) # <- TODO rewrite to target latest SmartContract design
## Why use this library?
Using an eventstore that ensures only valid events are stored is a distinct style choice
that can simplify the design of many types of applications where ledger-driven audits are desirable.Petri-nets are well explored data structures that have mathematically verifiable properties.
States and transitions are computed as a [Vector addition System with State](https://en.wikipedia.org/wiki/Vector_addition_system)
This vector format makes machine learning analysis of event logs very trivial.This library is compatible with `.pflow` files produced with a Java [visual editor](./pneditor-0.71.jar)
Once a user is familiar with the basic semantics of a Petri-Net, new process flows can be developed rapidly.