Commit Graph

47 Commits

Author SHA1 Message Date
Daira Emma Hopwood a1641c8dc9
Merge pull request #22 from daira/bft-abstractions
Prototype of BFT abstractions and Streamlet; add static type checking
2023-12-07 11:32:57 +00:00
Daira Emma Hopwood 76ef14abf7 Enforce type checking in CI. Also run `poetry check`.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-06 14:56:37 +00:00
Daira Emma Hopwood 096fdf913a Add type annotations and document their use in `doc/patterns.md`.
Enforce the annotations in `check.sh` using `pyanalyze`.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-06 14:56:37 +00:00
Daira Emma Hopwood 8eafb573fc More work-in-progress and tests for Streamlet.
Co-authored-by: Nate Wilcox <nathan+dev@electriccoin.co>
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-12-06 00:03:42 +00:00
Daira Emma Hopwood 07142cf1f2 WIP for Streamlet.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-25 17:59:29 +01:00
Daira Emma Hopwood 1a930161a1 Prototype of BFT abstractions.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-25 17:59:29 +01:00
Daira Emma Hopwood 7c306ab989 Minor optimization (avoid copying the `transactions` list).
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-25 17:52:02 +01:00
Daira Emma Hopwood 146aed9079 Add slightly more structured logging.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-25 17:52:02 +01:00
Daira Emma Hopwood e55822289e Support message broadcast.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-25 17:49:17 +01:00
Daira Emma Hopwood 582eb2dde4 Add `.vscode/settings.json` to enable testing support in VS Code.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-23 21:37:29 +01:00
Daira Emma Hopwood 54cc568a9d
Merge pull request #12 from daira/bc-abstractions
Prototype of best-chain abstractions
2023-10-23 20:19:22 +01:00
Daira Emma Hopwood 4ad740533a Replace bc-demo with a call to the test, to avoid duplicating code.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-21 19:59:04 +01:00
Daira Emma Hopwood 4af1b6a02b Implement abstractions for a shielded protocol.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-21 19:53:42 +01:00
Daira Emma Hopwood 3f66d02759 Improve documentation and rename `BCBlock.is_valid` to `is_noncontextually_valid`.
Also assert that all transactions in a `BCBlock` are `BCTransaction`s.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-21 00:24:01 +01:00
Daira Emma Hopwood c0f45764e0 Document and check the type of `inputs` in the BCTransaction constructor 2023-10-21 00:24:01 +01:00
Daira Emma Hopwood bce1f0cb06 Add tests for simtfl.bc.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-21 00:24:01 +01:00
Daira Emma Hopwood 5b125a8091 Better handling of coinbase, and add simple block validation.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-21 00:24:01 +01:00
Daira Emma Hopwood 4d07450b1c Prototype of best-chain abstractions.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-21 00:24:01 +01:00
Daira Emma Hopwood e726693d5a
Merge pull request #18 from daira/doc-and-tests
Doc and test improvements
2023-10-21 00:22:25 +01:00
Daira Emma Hopwood 6e2686eae1 Consistently use "message propagation delay".
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 23:02:30 +01:00
Daira Emma Hopwood 224faeebb7 Fix an issue with overriding the network delay, and test it.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 22:40:04 +01:00
Daira Emma Hopwood 3d4a647bd0 Add comments to explain the `Node` tests.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 22:29:35 +01:00
Daira Emma Hopwood 92c8082193 Refactor starting of nodes.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 22:00:04 +01:00
Daira Emma Hopwood d5c637954d Update the simtfl module doc comment to point to tfl-book.
Co-authored-by: Nathan Wilcox <nathan-at-least@users.noreply.github.com>
2023-10-20 22:00:04 +01:00
Daira Emma Hopwood de53ac847c Add `apidoc/` to `.gitignore` and clarify README on generating docs.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:56:27 +01:00
Daira Emma Hopwood 70c9ee523d Add dependencies and script for generating API documentation.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:56:27 +01:00
Daira Emma Hopwood d8c282c73c More documentation.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:56:27 +01:00
Daira Emma Hopwood df251635bf Add references for error and warning codes in .flake8
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:56:27 +01:00
Daira Emma Hopwood 44fc6685a5 Run tests in CI.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:56:27 +01:00
Daira Emma Hopwood f971c8b299 Add tests for message-passing framework.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:09:28 +01:00
Daira Emma Hopwood c7e29c924f Minor refactoring to make the use of `Network` cleaner.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:09:28 +01:00
Daira Emma Hopwood ffc2ecbc64 Add `check.sh` for convenience of running flake8 and tests before
submitting a PR.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:09:28 +01:00
Daira Emma Hopwood 67de1f9841 Move documentation into a `doc/` directory.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:09:28 +01:00
Daira Emma Hopwood f9188f73f1 Use `_name` for attributes that are intended to be private.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-20 21:09:28 +01:00
Daira Emma Hopwood 55c8871e41
Merge pull request #19 from zcash/downgrade-python-for-debian-bullseye
Downgrade `python` interpreter requirement for Debian 11 Bullseye
2023-10-19 00:31:55 +01:00
nate 7cb30f62f3 Downgrade `python` interpreter requirement to match Debian 11 Bullseye; demo runs successfully. 2023-10-18 11:14:40 -07:00
Daira Emma Hopwood c4a5aa8215
Merge pull request #5 from daira/sequential-nodes
Support sequential message handling and use it for PongNode in the demo
2023-09-24 19:44:21 +01:00
Daira Emma Hopwood ebbcc03da7 Support sequential message handling (by subclassing SequentialNode),
and use it for PongNode in the demo.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-24 19:42:38 +01:00
Daira Emma Hopwood 470c9e8d5b
Merge pull request #4 from daira/allow-py3.10
Allow Python 3.10
2023-09-24 17:55:05 +01:00
Daira Emma Hopwood 4c141f067c Allow Python 3.10.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-24 17:50:47 +01:00
Daira Emma Hopwood 9f238257dd
Merge pull request #2 from daira/cleanups
Cleanups
2023-09-24 17:45:12 +01:00
Daira Emma Hopwood 798a203121 Add config file, dev dependency, documentation, and GitHub action for flake8.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-24 17:42:44 +01:00
Daira Emma Hopwood e49fb83ca2 Move the demo to its own file.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-24 17:40:41 +01:00
Daira Emma Hopwood e5243ca509 Fix doc comment placement.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-24 17:32:34 +01:00
Daira Emma Hopwood 2fb682c57e
Merge pull request #1 from daira/pingpong
Less trivial example, with message passing between nodes
2023-09-24 15:42:07 +01:00
Daira Emma Hopwood 20e012f1cf Less trivial example, with message passing between nodes.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-24 15:37:55 +01:00
Daira Emma Hopwood 1ace46834f Initial commit: readme, license, poetry boilerplate, and a minimal example
of using simpy.

Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-24 10:39:27 +01:00