7

Whilst downloading the blockchain which has taken me approximately a week to get to block 1.09 mil, I received a message from geth.exe after a reboot around 1050999 -1060888

You're one of the lucky few that will try out the JIT VM (random). If you get a consensus failure please be so kind to report this incident with the block hash that failed. You can switch to the regular VM by setting --jitvm=false

Any idea as to what this means ? It's a Just In Time Virtual Machine? after reading and reading I'm surmising this has to be some sort of fork? Correct me if I'm wrong , thanks for the feedback ! Due to my lizard brain I rebooted the sync.

2
  • I can't add humor and say "Won the Lotto?" sheessk i guess, thanks for the reminder on the upvote . So say we all n'stuff
    – 01infiniti
    May 24, 2016 at 19:32
  • 1
    Not really :) Our site currently now is quite loose compared to others, where things are really tightened, no room for "thanks" etc. Example: stackoverflow.com/posts/1642028/revisions
    – eth
    May 24, 2016 at 22:40

1 Answer 1

6

As you have guessed, this is the new Just-In-Time virtual machine in the geth Ethereum node software.

From go-ethereum - cmd/util/flags.go, lines 683 to 688:

jitEnabled := ctx.GlobalBool(VMEnableJitFlag.Name)
// if the jit is not enabled enable it for 10 pct of the people
if !jitEnabled && rand.Float64() < 0.1 {
    jitEnabled = true
    glog.V(logger.Info).Infoln("You're one of the lucky few that will try out the JIT VM (random). If you get a consensus failure please be so kind to report this incident with the block hash that failed. You can switch to the regular VM by setting --jitvm=false")
}

Only 10% of the geth instances running this new version of software will use this JIT VM, and this 10% is randomly chosen.

If there is a major fault in the new JIT VM implementation, 90% of the nodes will still continue mining the Ethereum blockchain. The fault can be reported and while being fixed, the JIT feature can be disabled from the geth command line using the parameter --jitvm=false.

If you want to see the message again, just restart geth repeatedly, and on average you should see this message 1 out of 10 restarts.

It is not a fork in the blockchain.

Here is an article on the new JIT VM - Optimising the Ethereum Virtual Machine.

1
  • 1
    It's called A/B testing and ensures that we have a range of subjects that we can use if anything goes wrong :-) It ensures that, if anything goes to shit, we still enough people available that run "correctly". Additionally, here's an article about the JIT itself medium.com/@jeff.ethereum/go-ethereums-jit-evm-27ef88277520
    – Jeffrey W.
    Jun 4, 2016 at 9:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.