The Interledger Community 🌱

Radhy
Radhy

Posted on

Has anyone tried running Rafiki locally?

I know Rafiki isn't ready yet, but I've been wanting to try running Rafiki on my local machine. Tested it on Mac mini M1 chip, but got crash when trying build with Docker.

The script I'm running:

yarn docker build backend -t rafiki-backend
Enter fullscreen mode Exit fullscreen mode

It seems that the crash because I haven't set the Docker to run as non-root user, but I couldn't manage to set that up because I'm clueless as a mac user less than one year experience and to add to that, most guides to set Docker as non-root user seems written for Linux users.

Any help appreciated 🙏

Top comments (12)

Collapse
 
omertoast profile image
Ömer Özdemir

Hey @radhyr, I don't think the problem is setting docker as non-root user as it's not possible nor required on macOS. I guess the problem is the node version you are using according to my experiences with macOS M1. You can try using node v14 and build the image. If it still doesn't work then you can create an issue about it on Rafiki repo, I would like to help you with that.

Collapse
 
radhyr profile image
Radhy

Thanks for coming by @omertoast
It seems changing node version to v14 doesn't help me much here. Here's the error screenshot I got:
error

I opened an issue per your suggestion here:
github.com/interledger/rafiki/issu...

Collapse
 
radhyr profile image
Radhy

I think this has to do with bcrypt failing in Docker m1 chip
github.com/kelektiv/node.bcrypt.js...

Collapse
 
vineel profile image
Vineel R. Pindi

Hi @radhyr , I checked with the team, and we don't have a dockerized version yet to run locally; it's a work in progress and the documentation should be available shortly! If you have any other questions, please let me know.

Collapse
 
radhyr profile image
Radhy

Oh, so that was the case. I thought I made a mistake somehow. Really looking forward for Rafiki to be available soon! Thanks for the reply Vineel! 👍

Collapse
 
vineel profile image
Vineel R. Pindi

Hi @radhyr , Rafiki planning calls are open to community and are hosted every Monday at 17:00 GMT, via Google Meet [1]. You could try joining if possible to get your questioned answered.

In between, I'll get back with more details about your question shortly.

[1] Google Meet joining info Video call link: meet.google.com/rdx-xoqn-iiq Or dial: ‪(US) +1 408-831-2432‬ PIN: ‪472 676 485‬# More phone numbers: tel.meet/rdx-xoqn-iiq?pin=32630088...

Collapse
 
radhyr profile image
Radhy

So I did troubleshooting myself by following clue I got from bcrypt dependency. This bug is exclusive to Mac with M1 chips and when building a Docker image.

In package.json I change bcypt version from "^5.0.1" to "5.0.0" to downgrade and lock the culprit dependency that crashes Docker. From there I run yarn rebuild and run the Docker build image again.

And there it goes 😎! I finally got Rafiki build in my machine.

Rafiki docker

But now the problem is Docker can't run the image somehow.
This is the error I got when tried running Rafiki:

Error: Failed to initialize io_uring
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1144:18)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.external_module_.Module._load (/workspace/.pnp.cjs:19603:14)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:101:18)
    at Object.<anonymous> (/workspace/.yarn/unplugged/tigerbeetle-node-npm-0.4.1-16106fd9d1/node_modules/tigerbeetle-node/dist/index.js:4:17)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.external_module_.Module._load (/workspace/.pnp.cjs:19603:14)
emergency: Failed to initialise environment.

internal/modules/cjs/loader.js:1144
  return process.dlopen(module, path.toNamespacedPath(filename));
Enter fullscreen mode Exit fullscreen mode
Collapse
 
chrislarry profile image
Chris Lawrence
Collapse
 
davoweb3 profile image
Davo Ramirez

Hi everyone, I just spun up a local Rafiki's playground using gitpod , it's working pretty good so far!

Collapse
 
radhyr profile image
Radhy

A lot has change since I started this thread, and Rafiki has been in a working alpha state for a while now, working even in my M1 too. That said, since it is intended for licensed entities, Rafiki isn't that useful for devs except for its playground and for us to learn how future infastructure of Interledger works. So for anyone who's wondering if they can explore further checkout Dassie which is intended for developers 🎉

Collapse
 
davoweb3 profile image
Davo Ramirez

yeah! I have been checking Dassie too ( I have been struggling with the deployment so far) . Dassie fits better for end users rather than banks or money services. For the last group Rafiki it's a better choice and yes it's still in Alpha stage and we will have to wait some time for a beta version.

Collapse
 
davoweb3 profile image
Davo Ramirez

Hi, I had success using Linux, I haven't had good experience with Windows , and regarding Mac I don't know how it behaves.