Skip to content

Improve devnet docker setup #742

@nonsense

Description

@nonsense

This issue is a follow-up from #695

Ultimately we need a devnet setup (lotus + lotus-miner + boost) that is:

  • easy to use by new-comers to Boost, so that they can try Boost quickly and help them get started with Boost
  • very easy way to submit a test deal, and retrieve it, and experience Filecoin + Boost
  • easy to develop against - in general this means that we should be able to quickly iterate on Boost, but sometimes this also involves changes to Lotus, so it should be easy to quickly rebuild and redeploy individual images

Improvements / Tasks:

We should consolidate these, keep a minimal README.md regarding the devnet, and everything else should go to https://boost.filecoin.io/

  • Add support for building Boost images from local source (this used to be the case, but got changed a few hours ago) #759
  • Add support for building Lotus / Lotus-miner images from local source
  • Support other architectures, not just x86_64. For example the setup right now doesn't work on M1 or M2.
  • Modify the lotus-miner configuration (~/.lotusminer/config.toml) to:
    -- disable BatchPreCommits
    -- disable AggregateCommits
    -- reduce WaitDealsDelay
  • Support 8MiB sectors, rather than 2KiB sectors.
  • Change npm install to npm ci -- I think npm install also updates dependencies, whereas we want to install the dependencies as per the committed lock file
  • Use temp directories, when checking out Lotus to build images, rather than local paths. This way the OS can cleanup the temp directories on restart (or we do cleanup after building), and we keep the local git repo and working directory clean.
  • Improve image building time for Boost image #767 Utilize Docker caches (image layers) to make building of Boost image faster - at the moment building a Boost docker image is rather slow due to the fact that we have to download a lot of dependencies (go.mod etc.) -- I suggest adding an intermediate Docker builder (in the multistage Dockerfile) that builds and caches Boost/main branch, which we can periodically clean and rebuild.
  • Consolidate Makefiles #779

This setup should be easy to integrate with the monitoring/tracing setup (grafana + prometheus + tempo)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions