corda/experimental/sandbox
Rick Parker 8ef1d767c9 Consolidate maven repositories (#445)
* Consolidate repositories into root build.gradle
2017-03-28 17:17:40 +01:00
..
src Fix file cleanup of sandbox unit tests on Windows machines. 2016-11-30 16:13:40 +00:00
build.gradle Consolidate maven repositories (#445) 2017-03-28 17:17:40 +01:00
README.md Move sandbox code into the experimental module to reflect its status 2016-11-29 10:59:13 +00:00

JVM sandbox

The code in this submodule is not presently integrated with the rest of the platform and stands alone. It will eventually become a part of the node software and enforce deterministic and secure execution on smart contract code, which is mobile and may propagate around the network without human intervention. Note that this sandbox is not designed as a anti-DoS mitigation.

To learn more about the sandbox design please consult the Corda technical white paper.

This code was written by Ben Evans.

The sandbox has been briefly reviewed but not yet tested or thoroughly reviewed. It should NOT be used or relied upon in any production setting until this warning is removed.

Roadmap

  • Thorough testing, code and security review.
  • Possibly, a conversion to Kotlin.
  • Make the instrumentation ahead of time only.
  • Finalise the chosen subset of the Java platform to expose to contract code.
  • Create the pre-instrumented sandboxed class files and check them in.
  • Integrate with the AttachmentsClassLoader
  • Add OpenJDK/Avian patches for deterministic Object.hashCode() implementation.