Skip to content

Bacalhau project report 20221010

lukemarsden edited this page Oct 10, 2022 · 4 revisions

Localdb & Wallet Balances in the Simulator 👛

We have now hooked the "localdb" event handler up to the separate API server in the protocol simulator. This means that we are consuming events from the attached nodes and processing them down to queryable state.

We also have the first glimpse of the concept of wallet balances in the simulator code!

image

FIL+ ⚙️

We are hard at work to get a usable flow working for Service Providers to benefit from running Bacalhau by beneficially being able to write Filecoin+ "blessed" data as the results of running Bacalhau jobs on their hardware.

We're currently working on the FIL+ block explorer service, and working on Dockerizing the Lotus development environment so it can more rapidly be provisioned in dev and test environments.

We also have notes in an early design doc here, more complete write-up coming soon!

Raw WASM sees the light of day! 🌅

A still more glorious dawn awaits for our raw WASM support. The very earliest version is now usable on our production network, thanks to hard work from Simon!

You can now run:

bacalhau wasm run easter.wasm easter2022

from a directory where you have a copy of easter.wasm from this pull request.

(module
  (type $t0 (func (param i32) (result i32)))
  (type $t1 (func (result i32)))
  (func $easter (export "easter") (type $t0) (param $p0 i32) (result i32)
    (local $l1 i32) (local $l2 i32) (local $l3 i32)
    (i32.and
      (i32.add
        (i32.add
          (local.tee $p0
[...]

This wasm program calculates the date of Easter 2022, according to the Anonymous Gregorian algorithm. It returns a single uint32, which in turn is returned to the user as the exit code of the process in bacalhau describe. Just as a starting point!

So far we only support nullary functions that return a single uint32. The supported WASM is required to be very simple:

  • It cannot require any imports; so no libraries or syscalls.
  • The function to call must not take any parameters.
  • The function to call must return a single int32.

So this means it can't really deal in any input or output data yet, so this commit just sets up the infrastructure and demonstrates the concept. We can work out how to do this in the next iteration.

The WASM in the above example calculates the day of Easter in April 2022, which is a complicated but purely numerical algorithm.

DAGs are go 🤓

Enrico has stepped up to drive our work on DAGs - and design work is underway, in collaboration with Philippe Métais and Thomas Chataigner who have experience building DAG solutions in their previous work with Holium.

We've had a kickoff meeting and a design doc is due to drop this week!

Usability UX 👩‍💻

Dave has done an amazing job making the UX of the CLI much nicer for end-user humans:

Screenshot 2022-10-10 at 06 28 48

Called "progressive display", the CLI now shows you the process of scheduling the job on the network, and then gives you friendly feedback including any error messages directly printed to the console. Nice work Dave!

Molecular simulation example 🧬

Phil and Enrico landed a new molecular simulation example, which is another excellent scientific example.

Data ingestion example 💿

We also have a new data ingestion example, which is a super valuable introduction to how to get data into your Bacalhau jobs in the first place!

What's next ⏭️

  • Sharded stable diffusion example with more GPUs on the network
  • Early worked example of a FIL+ workflow
  • WASM with more than int32s
  • DAG design doc
Clone this wiki locally