Skip to content

Conversation

@Mikerah
Copy link
Contributor

@Mikerah Mikerah commented Nov 28, 2025

This PR ensures that the python SDK has feature parity with the Rust SDK. There's still a lot of work to do but this PR contains a minimal set of functionality that can be used.

Mikerah and others added 2 commits November 26, 2025 11:58
Major changes:
- Add Stoffel entry point with compile()/compile_file()/load() builder pattern
- Add StoffelBuilder for MPC configuration (parties, threshold, protocol, etc.)
- Add StoffelRuntime with program()/client()/server()/node() accessors
- Add MPCClient, MPCServer, MPCNode participant classes with builders
- Add NetworkConfig with TOML file support
- Add advanced module with ShareManager and NetworkBuilder
- Add ProtocolType, ShareType, OptimizationLevel enums
- Add comprehensive exception hierarchy (StoffelError, MPCError, etc.)
- Enforce minimum 3 parties for HoneyBadger MPC
- Update branding consistency (Stoffel, not StoffelLang/StoffelVM)
- Update all examples and tests for new API structure
- Fix examples to work without compiler/VM bindings installed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Major additions:
- MPC Coordinator module for orchestrating computation phases
  - MockMPCCoordinator for local testing
  - CoordinatorClient for client-coordinator interaction
  - Session state management (preprocessing, inputs, compute, outputs)

- Async networking layer using asyncio
  - MPCNetworkManager for connection management
  - TCP transport with handshake protocol
  - Message types for MPC communication
  - Network helpers for easy setup

- Native ctypes bindings for Rust libraries
  - NativeCompiler using stoffellang.h C API
  - NativeVM using stoffel_vm.h C API
  - NativeShareManager for secret sharing operations

- Updated MPC participants with full networking
  - MPCClient: connect_to_servers(), send_inputs(), receive_outputs()
  - MPCServer: start(), connect_to_peers(), run_computation()

- Cleaned up examples folder
  - Single main.py example demonstrating coordinator workflow
  - Removed redundant example files

The coordinator orchestrates WHEN computation phases happen,
but does NOT perform computation - the nodes do.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@Mikerah Mikerah marked this pull request as ready for review December 30, 2025 15:59
@Mikerah Mikerah merged commit e3b4b18 into main Dec 30, 2025
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants