OpenOrbis / mira-project

mira rewrite in cxx
GNU General Public License v3.0
292 stars 65 forks source link

Move RPC out of the kernel #76

Closed kiwidoggie closed 4 years ago

kiwidoggie commented 4 years ago

So far there is undefined behavior inside of the protobuf-c decoder. Cannot repro this issue on PC (linux) with asan enabled, memory sanitizer caught one issue, but it never triggered again. Opting for removing all of RPC from the kernel in favor of the CtrlDriver (currently in use by substitute) and moving all remote RPC calls to userland with a refactored RPC system using capnproto or the official protobuf library from google (written in C++), currently pending on OOSDK C++ support to land from @Cryptogenic .

Ideally, this is the new flow

PC Client -> Socket -> Userland Daemon (startup code provided by @LightningMods ) -> RPC Server -> /dev/mira ioctl calls

As well as a watchdog to make sure RPC daemon restarts on crash.

kiwidoggie commented 4 years ago

RPC has been removed from the kernel all together (in my working fork which will be upstreamed soon), currently being rebuilt within userland using flatbuffers. This appears to work fine using the OOSDK since it has matured.