Commit graph

335 commits

Author SHA1 Message Date
Santiago Carmuega
d5f0c2fd80 refactor: Merge multiplexer & miniprotocols into single crate (#244) 2023-04-10 19:51:38 -03:00
Santiago Carmuega
b63d2052cb feat: Migrate to asynchronous I/O (#241)
This commit updates the networking stack to use asynchronous I/O for improved performance and concurrency. We have replaced synchronous I/O calls with their asynchronous counterparts and refactored the code to use async/await and Tokio runtime.
2023-04-09 08:50:56 -03:00
Santiago Carmuega
ae7e1f5c82 chore: Fix lint warnings for all targets (#240) 2023-03-24 06:59:49 -03:00
Santiago Carmuega
66a095df4a fix(upstream): Use sync read for chunk dequeue (#239) 2023-03-23 22:58:29 -03:00
Santiago Carmuega
70355a687d chore: Improve network tracing messages (#237) 2023-03-23 22:30:10 -03:00
Santiago Carmuega
44465369be feat(upstream): Make output generic by adapter (#236) 2023-03-16 16:21:06 -03:00
Mitchell Turner
6ac63a04e2 feat(addresses): Derive Hash on Address (#235)
authored-by: Turner <mitch@tpfs.io>
2023-03-14 18:10:55 -03:00
Santiago Carmuega
7b3708ac46 feat(traverse): Introduce time helpers (#234) 2023-03-13 18:55:44 -03:00
Santiago Carmuega
c1446ebea5 chore(traverse): Improve API ergonomics (#233) 2023-03-13 15:19:40 -03:00
Santiago Carmuega
8fa662b4de feat(traverse): Expose aux data scripts (#232) 2023-03-11 18:07:09 -03:00
Santiago Carmuega
4a7afe94f0 refactor(traverse): Unify mint and output asset artifacts (#231) 2023-03-11 14:12:31 -03:00
Santiago Carmuega
d9b73a3651 feat: Introduce Upstream crate (#230) 2023-03-10 15:57:51 -03:00
Pi Lanningham
afea5a43ed feat: Make the underlying TxBody type generic
* WIP

* Fix compilation on windows machines

* Make TxBody generic

Technically we should be generic over TxBody for arbitrary ouroboros implementations; however, that makes things awkward.  So, we introduce GenericClient and GenericServer, with concrete types that instantiate them to Cardano specific types.  We could have done this with default type arguments, but this pushes the type system to it's limits and it often can't infer the correct type

* More examples tweaks; clippy and fmt

* Remove unneccesary defaults

* Tag 24 is no longer mysterious

It means raw CBOR

* Cargo fmt

One day I'll configure vscode to do this on safe
2023-02-20 10:19:06 -05:00
Pi Lanningham
9adfe442a0 Return the remote socket address when accepting a connection (#227)
feat!: Return the socket address when accepting a connection

BREAKING CHANGE: The signature for Bearer.accept_tcp now returns the bearer, and the address that connected.

This can, for example, be used to implement allow and deny lists for accepting or rejecting incoming connections.

* Return the remote address from accept_unix

* cargo fmt

* Fix comment formatting
2023-02-09 21:58:08 -05:00
Pi Lanningham
1bf9e079b3 Implement server-side handshake client (#226)
feat: Add server-side handshake client

* Implement server-side handshake client

* fmt and clippy

* Implement decode for handshake propose messages

* Small cleanup

* cargo fmt

* Log out the full message we're sending to the server, for debugging

* Make txsubmission TxId parametric

You might expect this to just be 32bytes; technically, however, in the spec it's unspecified, and on the wire it's an array, with an era number and then a 32byte hash.  This leaves us flexible to that encoding changing in the future

* Add a TODO comment for the future

* Rename methods, format + clippy
2023-02-09 21:55:16 -05:00
cameron1024
e08c1489be feat: Allow creation of secret key from bytes (#224) 2023-02-09 17:44:37 -03:00
Pi Lanningham
01bdf4afe0 feat: Add client/server use_channel variants (#228)
The goal here is to make the use of channels when interfacing with nodes less of a black box; the 0x8000 bit flip is a very surprising behavior if you're not already familiar with it.
2023-02-09 17:38:45 -03:00
Pi Lanningham
f9263a0eba feat: Add constants for known miniprotocols
* Add constants for known miniprotocols

Now consumers of the crate don't have to memorize what channel number means what

* Add myself to the crate authors
2023-02-05 06:13:55 -05:00
Pi Lanningham
d869169e68 docs: Small crate readme tweaks
* Fix a few small typos in the txsubmission readme

* Link to txsubmission readme from crate readme

* Other small tweaks
2023-02-05 06:13:06 -05:00
Santiago Carmuega
8e45f13373 Release 0.18.0
pallas@0.18.0
pallas-addresses@0.18.0
pallas-codec@0.18.0
pallas-crypto@0.18.0
pallas-miniprotocols@0.18.0
pallas-multiplexer@0.18.0
pallas-primitives@0.18.0
pallas-traverse@0.18.0

Generated by cargo-workspaces
2023-02-04 09:01:11 -03:00
dependabot[bot]
fca65e25bd build(deps): update env_logger requirement from 0.9.0 to 0.10.0 (#209)
Updates the requirements on [env_logger](https://github.com/rust-cli/env_logger) to permit the latest version.
- [Release notes](https://github.com/rust-cli/env_logger/releases)
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.9.0...v0.10.0)

---
updated-dependencies:
- dependency-name: env_logger
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-04 08:52:01 -03:00
dependabot[bot]
307ec49689 build(deps): update minicbor requirement from 0.18 to 0.19 (#213)
Updates the requirements on [minicbor](https://gitlab.com/twittner/minicbor) to permit the latest version.
- [Release notes](https://gitlab.com/twittner/minicbor/tags)
- [Changelog](https://gitlab.com/twittner/minicbor/blob/develop/CHANGELOG.md)
- [Commits](https://gitlab.com/twittner/minicbor/compare/minicbor-v0.18.0...minicbor-v0.19.0)

---
updated-dependencies:
- dependency-name: minicbor
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-04 08:51:25 -03:00
Santiago Carmuega
6a3679dcda feat(miniprotocols): Implement tx submission client (#220)
* feat(miniprotocols): Implement tx submission client

* Match CDDL specs

* Fix build errors

* Add server implementation for txsubmission

Also includes some documentation for how to use both the client and the server

* cargo fmt

* clippy suggestions

clippy pls

* Fail explicitly on missing n2c unix socket

---------

Co-authored-by: Pi Lanningham <pi@sundaeswap.finance>
2023-02-03 20:38:12 -05:00
cameron1024
e5d8950e9f feat: Derive Debug for Bearer (#219) 2023-02-03 14:59:38 -03:00
Santiago Carmuega
cd0212e5dc fix: Provide original hash for inline datum (#221) 2023-02-03 14:58:39 -03:00
Santiago Carmuega
d7a414c3af chore: Fix lint issues (#222) 2023-02-02 21:07:14 -03:00
Santiago Carmuega
3780521474 chore: Fix README badge (#217) 2023-01-26 07:26:36 -03:00
Santiago Carmuega
3df2e3e6d4 Release 0.17.0
pallas@0.17.0
pallas-addresses@0.17.0
pallas-codec@0.17.0
pallas-crypto@0.17.0
pallas-miniprotocols@0.17.0
pallas-multiplexer@0.17.0
pallas-primitives@0.17.0
pallas-traverse@0.17.0

Generated by cargo-workspaces
2023-01-26 07:10:23 -03:00
Harper
8480c4502f fix: use PlutusBytes to encode BigUInt/BigNInt (#216) 2023-01-25 21:15:55 -03:00
Santiago Carmuega
d2a784edb3 Release 0.16.0
pallas@0.16.0
pallas-addresses@0.16.0
pallas-codec@0.16.0
pallas-crypto@0.16.0
pallas-miniprotocols@0.16.0
pallas-multiplexer@0.16.0
pallas-primitives@0.16.0
pallas-traverse@0.16.0

Generated by cargo-workspaces
2023-01-06 11:54:37 -03:00
Santiago Carmuega
8cfc6129b2 feat(miniprotocols): Introduce tracing (#214) 2022-12-20 14:31:43 -03:00
Karol Ochman-Milarski
dadb39de43 fix: Match CBOR encoding of plutus data with the haskell implementation. (#212)
* Add failing cbor rountrip test
* Encode lists like haskell does
* Encode plutus data bytestrings as haskell does

That is:
 - as bytestring for up to 64 bytes length
 - as an indefinite bytestring made of 64 byte chunks, last one can be shorter
2022-12-14 21:20:11 -03:00
Santiago Carmuega
832e3ec777 feat(multiplexer): Introduce sync multiplexer option (#210) 2022-11-30 19:31:09 -03:00
Santiago Carmuega
b8e599bf31 feat(addresses): Add helper for shelley into stake address (#208) 2022-11-24 14:13:32 -03:00
Santiago Carmuega
7ca2b0e8cb fix(addresses): Remove bad todo in bech32 logic (#207) 2022-11-24 12:36:26 -03:00
Santiago Carmuega
a60525d9ff Release 0.15.0
pallas@0.15.0
pallas-addresses@0.15.0
pallas-codec@0.15.0
pallas-crypto@0.15.0
pallas-miniprotocols@0.15.0
pallas-multiplexer@0.15.0
pallas-primitives@0.15.0
pallas-traverse@0.15.0

Generated by cargo-workspaces
2022-11-13 11:38:17 -03:00
Santiago Carmuega
00e3f22acb Release 0.14.1
pallas@0.14.1
pallas-addresses@0.14.1
pallas-codec@0.14.1
pallas-crypto@0.14.1
pallas-miniprotocols@0.14.1
pallas-multiplexer@0.14.1
pallas-primitives@0.14.1
pallas-traverse@0.14.1

Generated by cargo-workspaces
2022-11-13 11:12:54 -03:00
Santiago Carmuega
afbe18e619 chore: Remove lagging pre-release ref (#206) 2022-11-13 11:08:49 -03:00
Santiago Carmuega
4813ae02bf chore: Fix lint warnings (#205) 2022-11-13 10:53:19 -03:00
Santiago Carmuega
07804ef72d chore: Remove pre-release ref from deps (#204) 2022-11-13 09:59:22 -03:00
Harper
01bddd2507 chore: Fix address lint issue (#201) 2022-11-13 09:33:27 -03:00
Santiago Carmuega
c8dc65e471 chore(miniprotocols): Fix integration tests after preview respin (#203) 2022-11-13 09:21:20 -03:00
Santiago Carmuega
b59eb563d3 fix(primitives): Handle generic int in Plutus data (#202) 2022-11-12 16:16:26 -03:00
Harper
722df84fd5 feat(traverse): produces_at method for MultiEraTx (#200) 2022-11-03 20:12:39 +00:00
Santiago Carmuega
231f3871fe chore(miniprotocols): Add chain-sync tip test (#199) 2022-10-28 08:30:06 -03:00
Santiago Carmuega
1b42851f2d feat: Migrate to dumb agents (#198)
BREAKING CHANGE: handshake, chainsync, localstate and blockfetch mini-protocols changed the API surface

Co-authored-by: jmhrpr <harper.jme@gmail.com>
2022-10-25 14:42:34 -03:00
Santiago Carmuega
0ecf254f32 Release 0.14.0
pallas@0.14.0
pallas-addresses@0.14.0
pallas-codec@0.14.0
pallas-crypto@0.14.0
pallas-miniprotocols@0.14.0
pallas-multiplexer@0.14.0
pallas-primitives@0.14.0
pallas-traverse@0.14.0

Generated by cargo-workspaces
2022-10-13 20:10:38 -03:00
Santiago Carmuega
f093f41c5a Release 0.14.0-alpha.6
pallas@0.14.0-alpha.6
pallas-addresses@0.14.0-alpha.6
pallas-codec@0.14.0-alpha.6
pallas-crypto@0.14.0-alpha.6
pallas-miniprotocols@0.14.0-alpha.6
pallas-multiplexer@0.14.0-alpha.6
pallas-primitives@0.14.0-alpha.6
pallas-traverse@0.14.0-alpha.6

Generated by cargo-workspaces
2022-10-13 16:18:40 -03:00
Santiago Carmuega
62f7c84df0 Back-merge v0.13 hotfix 2022-10-13 16:14:20 -03:00
Santiago Carmuega
13367ee061 Release 0.13.3
pallas@0.13.3
pallas-addresses@0.13.3
pallas-codec@0.13.3
pallas-crypto@0.13.3
pallas-miniprotocols@0.13.3
pallas-multiplexer@0.13.3
pallas-primitives@0.13.3
pallas-traverse@0.13.3

Generated by cargo-workspaces
2022-10-13 16:00:01 -03:00