Node Packaging, Distribution and Installation
Package Dependencies
Binary (for execution):
- JRE
Java and Scala Libraries (non-native):
Currently managed transparently by sbt (specifically it's ivy-based dependency management subsystem)
These dependencies are automatically copied into our packages by sbt-native-packager during the packaging step.
Native Libraries:
- lmdb (currently shipped in a JAR (third-party) and handled like a normal java/scala dependency as above)
- libsecp256k1 (currently shipped in a JAR (by us) and handled like a normal java/scala dependency as above)
- https://github.com/rchain/secp256k1-native
- https://github.com/rchain/secp256k1-java (FFI around -native, this is the JAR we depend on)
- libsodium (WIP to ship as JAR: CORE-848)
- https://github.com/rchain/sodium-native
- (Forthcoming fork of kalium to use sodium-native)
Currently no provision to install and use Native Library dependencies from the package manager instead. We might consider changing that.
Supported Platforms for RNode
Platform | Package | Supported Versions | Dependencies | Dependency Management | Goals | Work Items | JRE Licensing |
---|---|---|---|---|---|---|---|
Linux macOS Windows | Tarball |
| JRE, libsodium | unmanaged. must be installed by user (we do have a shitty script on macOS). | include libsodium packaged as a jar (like lmdb, secp256k1). this allows us to avoid having users need to use homebrew or an alternative package manager. unfortunately, the tarball will always require the end user to have the right JDK or JRE installed. | - CORE-848Getting issue details... STATUS | Addressed by package manager |
Linux macOS Windows | Docker | https://docs.docker.com/docker-for-windows/ | Docker | Must be installed by user. | Addressed by package manager | ||
Linux | .rpm |
| JRE, libsodium | handled automatically by yum/dnf | none | - CORE-513Getting issue details... STATUS | Addressed by package manager |
Linux | .deb | JRE, libsodium | handled automatically by apt | none | - CORE-513Getting issue details... STATUS | Addressed by package manager | |
macOS | RNode.app (shipped in RNode.dmg) | macOS 10.12 and up | fully self-contained (JRE and libsodium are included in the *.app bundle) | We have not created these packages yet. The idea is to use: https://www.scala-sbt.org/sbt-native-packager/formats/jdkpackager.html | - OPS-188Getting issue details... STATUS | Open item | |
Windows | RNode.exe (shipped in zip?) | Windows 7 | fully self-contained (JRE and libsodium are included in the *.exe bundle) | We have not created these packages yet. The idea is to use: https://www.scala-sbt.org/sbt-native-packager/formats/jdkpackager.html | - OPS-188Getting issue details... STATUS | Open item |