Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚧 | B4: Integrate IPC and Mir into a production system #7

Closed
jsoares opened this issue Dec 6, 2021 · 9 comments
Closed

🚧 | B4: Integrate IPC and Mir into a production system #7

jsoares opened this issue Dec 6, 2021 · 9 comments

Comments

@jsoares
Copy link
Contributor

jsoares commented Dec 6, 2021

@jsoares commented on Wed Nov 24 2021

Description

Once we have a production-level implementation of hierarchical consensus (#6) and efficient subnet consensus protocols (#9), the next step is to combine them into a production system, deployable on the Filecoin mainnet.

Scope

Interplanetary Consensus (IPC) is a framework to enable on-demand horizontal scalability of Filecoin through the deployment of subnets (self-governing chains) that spawn their own state, validate messages in parallel, and seamlessly interact with any network in the hierarchy, as well as the Filecoin mainnet. Subnets can run different consensus algorithms, adjusting to the needs of the application. IPC is complementary to the programmability introduced by FVM, in that it provides a framework to further program the Filecoin network, accommodating a wide variety of use cases while overcoming potential consensus bottlenecks.

This project combines the outputs of #6 and #9 into a production implementation of IPC. It ends with actual real-world deployment but, as a first step towards that, it will launch Spacenet.

Dependencies

Roadmap

eta: 2023-12-31
children:

Talks

2022-10-27, Interplanetary Consensus: Scaling Blockchains with Subnets in an Easy-to-Trust Model

Watch the video

2022-10-27, Interplanetary Consensus: Now Playing in Eudico Near You

Watch the video

2022-10-27, Applications of IPC

Watch the video

2022-10-27, Building Modular and Scalable BFT Consensus Using the Mir Framework

Watch the video

Demos

2022-10-14, uptimeChecker — an FVM actor & service for cluster management

Watch the video

2022-12-05, Spacenet

Watch the video

2022-12-05, IPC FVM Actors Implementation

Watch the video

2023-03-21, Running an IPC Subnet

Watch the video

Resources

@adlrocha
Copy link
Contributor

2022-09-26

✋ Attendees

async

📣 Updates

🧵 Discussion

🎯 Up next

@adlrocha
Copy link
Contributor

adlrocha commented Oct 4, 2022

2022-10-03

✋ Attendees

async

📣 Updates

🎯 Up next

@jsoares
Copy link
Contributor Author

jsoares commented Oct 18, 2022

2022-10-10

📣 Updates

🧵 Discussion

🎯 Up next

@jsoares
Copy link
Contributor Author

jsoares commented Oct 18, 2022

2022-10-17

📣 Updates

🧵 Discussion

  • @adlrocha: @matejpavlovic, @dnkolegov, according to our Spacenet plan, the target was to have all the implementation ready pre-LabWeek, and start testing the code post-LabWeek. What are we missing from the Mir side?
    • @matejpavlovic: I went through the Issues
      and the only critical functionality-related item left is restarting from checkpoints.
      (The unified mempool and request pool can be closed, right, @dnkolegov?)
      The client watermarks are important too, but I guess the system can, for the very start, work without. It's just that a client will only be allowed to have one in-flight TX.
      One could consider this to be a performance thing, rather than functionality.
      All the other issues are related to robustness / testing and performance.

🎯 Up next

  • @cryptoAtwill
  • @adlrocha
    • Implementation of Mir-compatible full-nodes and syncing protocol for Mir.
    • If finished before the end of the week, support Mir critical development.
  • @sergefdrv
    • Look into the code in this PR on improving the atomic execution protocol and work further in that direction
  • @dnkolegov
    • Start working on the integration tests for spacenet's Lotus
  • @matejpavlovic
    • Mir State synchronization and starting from checkpoints.
    • Trantor rebranding and documentation (more videos, CL Summit talk).

@jsoares
Copy link
Contributor Author

jsoares commented Nov 14, 2022

2022-10-25

✋ Attendees

📣 Updates

  • your notes here

🧵 Discussion

  • What we need for Spacenet deployment
    • Formalize processes.
      • Restart from checkpoint.
      • Upgrading the network to a new version.
      • Tools (scripts) to do the above.
    • Two deployment environments on AWS (staging deployment)
      • WAN (world-wide) - Great Bear 🐻
        • 1-2 bootstraps
        • 7 validators
        • Tutorial for anyone to become a learner in Spacenet.
      • WAN (regional) - Draco 🐉
        • Same deployment as above, but in one geographical region (e.g. Europe)
      • LAN (local) - Scorpion 🦂
        • Same deployment as above, but in a single data center
    • Website in scaling.filecoin.io/spacenet with tutorial and info.
      • Memberships (network addresses and public keys of nodes running the deployments)
      • Monitoring of SpaceNet
    • Faucet for user funds.
    • [Denis] Sanity-security check (black magic stuff).

@jsoares
Copy link
Contributor Author

jsoares commented Nov 14, 2022

2022-10-31

✋ Attendees

sync

📣 Updates

🧵 Discussion

  • @adlrocha: @dnkolegov @matejpavlovic I am adding the following checklist to gather the list of tasks pending for SpaceNet launch so we can start assigning DRIs. Our focus these few weeks should be to "get ready for launch" 🚀.
    • [DRI: @adlrocha/@dnkolegov] Finalize and test implementation of syncing protocol for Mir.
    • [DRI: @dnkolegov] Integration tests for Mir using itests.
    • [DRI: @dnkolegov] Vulnerability scanning and updating of Mir's dependencies.
    • [DRI: @dnkolegov] Vulnerability scanning and updating of Mir's and Lotus's dependencies.
    • [DRI: @dnkolegov] Run security linters against the Mir code.
    • [DRI: @dnkolegov] Run security linters against the target Lotus code.
    • [DRI: @dnkolegov] Run goroutine leak tests the Mir code.
    • [DRI: @dnkolegov] Add integration tests from this doc.
    • [DRI: @adlrocha] SpaceNet genesis and faucet strategy (determine how we are going to provide users with funds).
    • [x] [DRI: @matejpavlovic] Bug when a validator catches-up with the SMR and sends the first user message (bug found for chat-demo in Lisbon).
    • [DRI: ] Document describing the different operational processes for SpaceNet (deployment, "catastrophic" restarts, upgrades, onboarding new validators, getting started for users, get funds, etc.).
    • [DRI: @matejpavlovic] Infrastructure for "constellations" deployment and monitoring (Great Bear, Draco, Scorpion).
    • [DRI: @dnkolegov] Perform basic securilty checks against the infrastructure.
    • [DRI: @jsoares] Website and/or blog post announcing SpaceNet.
      • Plan is to get scaling.filecoin.io up and add network technical details to github (a la wallaby)
    • [DRI: @ALL] Roadmap for SpaceNet (what can users expect to be able to do in SpaceNet in the next few months?)
    • [ ] [DRI: @matejpavlovic] Update mircat event inspector and debugger.
      • Taken by Alejandro later
    • [DRI: @matejpavlovic] Set up machines for 🐻 🐉 🦂
    • [DRIs: see issues] Mir-level testing, see GitHub issues (DRIs to be assigned)
  • @dnkolegov:
    • added several tasks for me to the list above

🎯 Up next

  • @adlrocha:
    • Syncing protocol implemented and hand-off to Denis for integration tests.
    • Support Willes with new IPC Gateway design decoupling functionality in different actors.
    • Add discussion in FIP repo for IPC in preparation for core-devs call.
    • TBD after assigning tasks.
  • @dnkolegov: do the assigned tasks
  • @sergefdrv: finalize discussions on atomic execution mechanisms and use-cases for IPC and start coding ⌨️
  • @cryptoAtwill: migrate atmoic exection to its own repo, making sure it compiles to wasm.
  • @jsoares: set up website content

@jsoares
Copy link
Contributor Author

jsoares commented Nov 14, 2022

2022-11-07

✋ Attendees

async

📣 Updates

🧵 Discussion

  • @adlrocha: @jsoares, I went through the planning and issues at consensus-shipyard/lotus and I would say that they are up to date, but let me know if you need some additional input regarding pllannin g and next steps, or if you want to do a quick sync to catch-up on this.

🎯 Up next

@jsoares
Copy link
Contributor Author

jsoares commented Nov 14, 2022

2022-11-14

✋ Attendees

async

📣 Updates

  • @adlrocha
    • Mir integration in Lotus finalized. We are wrapping up the last few basic itests from the testing doc before we "officially" push the PR to Lotus master, and we are planning the next batch of more "complex scenarios".
    • First strokes of the Spacenet faucet.
    • First draft of the Spacenet/IPC refined roadmap. To be reviewed in this week's team CoLo. Feel free to add initial feedback and suggestions.
    • There's been a lot of progress moving IPC actors to user-land (great job here, Willes!)
      • Housekeeping of issues and state of the code.
      • Tracking issue with pending tasks for a first release of the user-defined actors. With this we would be able to start with the integration with Lotus (and this will kick-off a hard conversation, as native actors are no longer supported in Lotus upstream :) yay!)
      • Subnet actor being refactored to use our fvm-utils runtime abstraction.
      • Atomic execution decoupled from core functionality of IPC gateway (this will allow custom user-defined implementation of atomic execution protocols that leverage the ipc-gateway. We just provide a reference implementation).
      • Proposal for actor interface identification (required for our protocol so the ipc-gateway is able to, for instance, identify if an actor implements the subnet actor interface).
    • Presented Consistent Broadcast FIP and IPC in core-dev meetings. Some points of feedback we received: 
      • For IPC, people were really interested in seeing a roadmap and understanding how it would change Filecoin in the future (the website, the video, and the roadmap we are working on should help with this). 
      • Alex was really interested in the scope of IPC to work on a more general universally discoverable network identifier (analogous to the IPC address we currently provide as part of IPC). This is a line a work maybe worth exploring in the short-term.
  • @cryptoAtwill
    • Migrate ipc-subnet-actor constructor and join method with test cases
    • Migrate ipc-subnet-actor leave and kill methods
  • @dnkolegov:
    • itests for Spacenet and Mir
    • bug finding and debugging
  • @matejpavlovic:
  • @sergefdrv
    • Draft PR to support wrapped cross-net message delivery
    • Implementing this proposal to improve atomic execution in IPC

🧵 Discussion

🎯 Up next

@jsoares
Copy link
Contributor Author

jsoares commented Nov 21, 2022

2022-11-21

📣 Updates

  • @cryptoAtwill:
    • fixed migration errors in leave and kill..
    • Migrated ipc-subnet-actor completely, migrated submit-checkpoint and all its related code. Updated testcases to use MockedRuntime. Also added a few more test cases in submit-checkpoint.
    • Proposed https://github.com/consensus-shipyard/ipc-subnet-actor/issues/10 for some simple code refactoring
  • @adlrocha
    • Spacenet
      • Spacenet infrastructure deployment. 
      • Fixed a nasty bug when validators restart and need to catch-up with the state of the chain. The bug involved a race in the Lotus integration, and a race in Mir. Now all tests pass 🎉 (thank you Matej for an amazing job here! It wasn't easy).
      • Re-architected Mir integration in Lotus to make it less race-prone.
      • Faucet frontend, and integration with peers and wallet key tested.
      • Spacenet README and getting started for users and developers.
      • Lots of progress for the first release of IPC actor implementation (1,2,3)
    • Next steps for IPC after Spacenet discussion.
  • @jsoares
    • Scaling Filecoin minisite making progress, but content still to be completed
    • Spacenet faucet deployed (link above!)
    • Helped track down connectivity issue :)
  • @dnkolegov
    • Faucet
      • Added a basic implementation of the Faucet
      • Refactored the Faucet implementation using the well-established web service template from Ardan Labs
      • Added an integration test to the Faucet
    • Shipyard-lotus
      • Debugging the Lotus-Mir race bug in the shipyard
      • Fixing and refactoring tests
      • Adapting CICD
  • @sergefdrv
    • Adjusted and merged PR to improve the cross-net message mechanism in IPC – pass to the destination actor information about the origin of the cross-net message
    • Working on implementing improved atomic execution scheme

🧵 Discussion

  • @adlrocha: @dnkolegov, as discussed in Slack I suggest focusing on any of these tasks next. Which one you prefer? Or is there anything that we have peding that you want to focus on?
    • Include support for reconfiguration in Mir-Lotus to include support for dynamic membership in Spacenet.
    • Start integrating all the code from Eudico to spawn new subnets (and re-architect it to avoid having to have all subnet process as go-routines within the same process --we already learnt how hard to handle that monolith was--).
    • @dnkolegov:
      • What about testing the recovery mechanism or adding more tests to the shipyard? I am not sure we want adding more code before the luanch and release and I think we should be focusing on robustness and the quality of the current codebase.
    • As discussed sync:
      • @dnkolegov will be focusing on bringing reconfiguration support to Spacenet and testing it.
      • @adlrocha will be working on catastrophic recovery and chain snapshots. @dnkolegov will give support testing this new feature.

🎯 Up next

  • @cryptoAtwill:
    • Migrate ipc-gateway unit tests
    • Integration testing of ipc-gateway and ipc-subnet-actor on local fvm.
  • @adlrocha
    • Infrastructure deployment for Spacenet and final integration of the faucet with the backend.
    • Bootstrap nodes deployment and configuration.
    • Implementation of Spacenet catastrophic recovery support.
    • Contribute to the scaling.filecoin website.
    • Figure out next steps post-Spacenet.
  • @sergefdrv
  • @jsoares
    • Get the website ready by EOW

@jsoares jsoares changed the title 🚧 | B4: Integrate B3 and Y3 into a production system 🚧 | B4: Integrate IPC and Mir into a production system Nov 28, 2022
@jsoares jsoares closed this as completed Nov 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants