How to tell if Discovery has launched successfully

It looks like my launch is good, with messages from:

km_1 - blocks/epoch
contract_1 - eth_blockNumber
p2p_1 - waiting for core_1 …

I don’t see anything from core_1 at this point, should I?

2 Likes

km_1 and contract_1 messages look good, and that’s your steady state, but p2p_1 saying that it’s waiting for core means that something went wrong with core, as it is one of the first components to start. Scroll up almost to the very beginning and look for an error message from core, and report back :slight_smile:

A ha! The error is:

aesm_service: [ADMIN] Platform services initialization failed due to DAL error

The infamous DAL error. Are you sure you followed the recipe correctly and completed the correct TARKA steps?

In all seriousness, it may be related to the SGX, and I think there’s some info on the Intel forums you might find useful, but imagine one of the Enigma devs here will help you out.

1 Like

Hi Jim,

Yeah, it looks like SGX though I’ve set the mode to SW for simulation. :thinking:

Thanks for the DAL humor!

@laura, that is not the error I’m looking for. You can safely ignore that error (which is normal). There should be another a couple of lines below…

here you go @victor:

./start_core.bash: line 5: ./target/debug/enigma-core-app: No such file or directory

correct! that’s the relevant error. That means that core is missing its binary, and thus will not start (the container is up, but it’s doing nothing because it cannot run the code it’s supposed to be running). This binary is compiled at build time, so rebuild core and look for errors:
docker-compose build --no-cache --pull core
Some context and additional context on rebuilding images can be found here:

Got it. I tried the docker-compose build --no-cache --pull core but I was still getting that error from launch.bash.

I hadn’t gotten through the entire README yet so I decided to do the next part:
docker-compose exec core /bin/bash
and from within the enigma-core container did a clean build with the DEBUG flag:
root@core:~# cd enigma-core/enigma-core
root@core:~/enigma-core/enigma-core# make full-clean
root@core:~/enigma-core/enigma-core# SGX_MODE=SW make DEBUG=1

Then I ran the launch.bash again and everything worked great :smiley:

Thanks for your help @victor!

Ah yes, if you are mounting the core volume, you need to get into the container and rebuild it there, as you did above. Glad to have you up and running now, @laura! :clap:

1 Like

I also get the DAL error when starting the containers with discovery start:

Starting Enigma Network...
Creating network "enigma_net" with the default driver
Creating enigma_contract_1 ... 
Creating enigma_km_1 ... 
Creating enigma_core_1 ... 
Creating enigma_p2p_1 ... 
Creating enigma_client_1 ... 
Creating enigma_contract_1
Creating enigma_km_1
Creating enigma_p2p_1
Creating enigma_core_1
Creating enigma_core_1 ... done
Attaching to enigma_km_1, enigma_client_1, enigma_contract_1, enigma_p2p_1, enigma_core_1
km_1        | aesm_service[10]: [ADMIN]Platform Services initializing
km_1        | aesm_service[10]: [ADMIN]Platform Services initialization failed due to DAL error
km_1        | aesm_service[10]: The server sock is 0x562537ec7870
client_1    | Waiting for enigma_p2p_1...
core_1      | aesm_service[9]: [ADMIN]Platform Services initializing
core_1      | aesm_service[9]: [ADMIN]Platform Services initialization failed due to DAL error
core_1      | aesm_service[9]: The server sock is 0x561e68f5f870
km_1        | ~/enigma-core/enigma-principal/bin ~
km_1        | [+] Home dir is /root
km_1        | [+] Home dir is /root
km_1        | [-] Create .enigma folder => AlreadyExists
km_1        | [+] Created new .enigma/epoch folder => "/root/.enigma"
km_1        | [+] Created new .enigma/state-keys folder => "/root/.enigma"
km_1        | The current directory is /root/enigma-core/enigma-principal/bin
km_1        | [-] Open token file /root/.enigma/enclave.token error! Will create one.
km_1        | Loading Principal config: "../app/tests/principal_node/config/principal_test_config.json"
km_1        | ./start_km.bash: line 8:    17 Illegal instruction     (core dumped) RUST_BACKTRACE=1 ./enigma-principal-app -w
km_1        | ~
km_1        | Waiting for contracts to be deployed...
p2p_1       | p2p_1: Waiting for core_1...
core_1      | [+] Home dir is /root
core_1      | [+] Home dir is /root
core_1      | [-] Create .enigma folder => AlreadyExists
core_1      | The current directory is /root/enigma-core/enigma-core/app
core_1      | [-] Open token file /root/.enigma/enclave.token error! Will create one.
p2p_1       | core_1 is ready!
p2p_1       | Waiting for the Key Management node to start...

It hangs there.

Using freshly pulled docker images and sw mode.

In sw mode, is SGX emulated in the docker images or should I have an SGX capable CPU anyways?

As mentioned above, the DAL error is normal, and can be safely ignored.

The relevant error is on this line:

Answering your question, while you don’t need an SGX capable machine to run in SW mode, I believe you at least need an Intel CPU. We have reports of other users not being able to run Discovery in AMD machines, but many of us run it in Intel computers that do not support SGX

Thanks!

I get the error on my laptop which has an i5-2520M, but not on my desktop which as an i5-4690k.

1 Like