Fusion VM Code Review ā Cryptofinance Blockchain
My initial FUSION VM code review is an early update on the blockchain code for this interesting cryptofinance project. Right now I don't see a lot of interesting code, simply a straightforward VM implementation with the stubs added for built in Oracles. Timestamp 05:30 GMT on April 14th 2018.
I wasnāt originally going to do this code review on the FUSION Virtual Machine project, as I feel there isnāt enough substance yet; but everyone keeps asking, so let me just share my thoughts at this time. Please bear in mind that like all blockchain code audits, this one is timestamped at the bottom and may be updated to reflect new developments as FUSION gets off the ground.

First off, Java, nothing inherently wrong, but I was hoping for something more optimized, Fusion did state they are planning JVM support though, so this is probably a choice connected to it.
Lack of a detailed readme is a bit disappointing.
I was hoping for a standalone VM implementation, something I could start from the command line and play with, maybe even throw in a basic contract, unfortunately we donāt have this yet, for now we just have code.

The current Fusion VM code review shows no commit history to work off of, so we just have to evaluate what is available in the repository.

No comments unfortunately, we see some interface definitions.

My assumption here is the the communication layer for the built in VM Oracles will use JSON, for now just a stub.
The news moving money, markets, and the world—before your day starts.
Daily. Free. Join 34,000+ readers across crypto, finance, and policy.

HttpUtils, something I was interested to see an implementation on, but nothing here yet.

Stub. (Stub just means a short form of something.)

OpCodes are instructions that we want to perform, so we first call useGas with the OpCode value, which calls calcGas (which currently returns 0 because it isnāt implemented) which sees if there is enough gas. useGas is defined in the global context, so I assume that each AppVirtualMachine is a single instantiation (confirmed in AppSystemService that it is) otherwise this is unoptimized.
Real implementation is in Virtual Machine, so letās go find it.

Good error handling, good structure, straightforward implementation.
Conclusion: Itās good code, but itās standard code. I was definitely hoping for more, this is a fairly straightforward VM implementation with the stubs added for built in Oracles.
For now, this definitely hasnāt sated me, and Iāll be looking forward to doing a deeper FUSION VM code review when they release more substance.
Disclaimer: Crypto Briefing code reviews are performed by auditing what is on display in the master branch of the repoās made available. This was performed as an educational review and any comments in the article are the opinion of the writer. It is normal for code to change rapidly, hence we timestamp our code reviews so that they present a snapshot at a moment in time.Ā Information contained hereinĀ should not be used as any comment or advice on the project as a whole.
Timestamp: April 14th, 2018 at 05:30 GMT