Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 00:25
    orthecreedence edited #1440
  • Aug 24 22:46
    orthecreedence edited #1440
  • Aug 24 22:45
    orthecreedence opened #1440
  • Aug 23 21:11
    orthecreedence commented #1437
  • Aug 23 17:03
    orthecreedence commented #1437
  • Aug 23 16:00
    orthecreedence commented #1437
  • Aug 23 15:08
  • Aug 23 15:00
    codecov[bot] commented #1439
  • Aug 23 14:24
  • Aug 23 14:24
    aleksuss synchronize #1439
  • Aug 23 14:24
    aleksuss review_requested #1439
  • Aug 23 14:24
    aleksuss review_requested #1439
  • Aug 23 14:24
    aleksuss opened #1439
  • Aug 23 13:54
  • Aug 23 13:52
    codecov[bot] commented #1438
  • Aug 23 13:19
  • Aug 23 13:16
  • Aug 23 13:11
  • Aug 23 13:11
    alekseysidorov synchronize #1438
  • Aug 23 13:11
    alekseysidorov synchronize #1438
Michael Popsuev
@sheb-gregor

Hi!
Does the auditor mode work on the master version of Exonum?
When I try connect 5th node as auditor to existing healthy cluster:
— auditor node does not sync blockchain state
— auditor node trying to submit commit message 0_0

Auditor logs:

[2019-06-12T12:50:19.327231000Z INFO  exonum::node] Validator id = 'None'
[2019-06-12T12:50:19.379528000Z INFO  exonum::helpers::config] ConfigManager started
[2019-06-12T12:50:19.380844000Z INFO  exonum::api::backends::actix] Starting public web api on 0.0.0.0:8005
[2019-06-12T12:50:19.381253000Z INFO  actix_net::server::server] Starting 8 workers
[2019-06-12T12:50:19.384200000Z INFO  actix_net::server::server] Starting server on 0.0.0.0:8005
[2019-06-12T12:50:19.384347000Z INFO  exonum::api::backends::actix] Starting private web api on 0.0.0.0:9005
[2019-06-12T12:50:19.384541000Z INFO  actix_net::server::server] Starting 8 workers
[2019-06-12T12:50:19.387026000Z INFO  actix_net::server::server] Starting server on 0.0.0.0:9005
[2019-06-12T12:50:19.387314000Z INFO  exonum::node] Start listening address=0.0.0.0:6335
[2019-06-12T12:50:19.387530000Z INFO  exonum::node] Trying to connect with peer bf05282c...
[2019-06-12T12:50:19.387725000Z INFO  exonum::node] Jump to round 1
[2019-06-12T12:50:19.415287000Z INFO  exonum::node::basic] Received Connect message from peer: Out("0.0.0.0:6331", V4(127.0.0.1:6331))
[2019-06-12T12:50:19.415459000Z INFO  exonum::node::basic] Received Connect message from 0.0.0.0:6331. Need to connect: false
[2019-06-12T12:50:19.420188000Z INFO  exonum::node::basic] Disconnected from: bf05282c...
[2019-06-12T12:50:19.444266000Z INFO  exonum::node::basic] Received Connect message from peer: Out("0.0.0.0:6331", V4(127.0.0.1:6331))
[2019-06-12T12:50:19.444398000Z INFO  exonum::node::basic] Received Connect message from 0.0.0.0:6331. Need to connect: true
[2019-06-12T12:50:19.444894000Z INFO  exonum::node::basic] Send Connect message to 0.0.0.0:6331
[2019-06-12T12:50:19.449278000Z INFO  exonum::node::basic] Disconnected from: bf05282c.

One of validators:

[2019-06-12T12:50:23.151823000Z INFO  exonum::node::consensus] COMMIT ====== height=3546, proposer=2, round=1, committed=0, pool=0, hash=ddcda634dbd091a6b2774e1cd3b4a983ba6c43cb10b1bb28550ebe35bee54a10
[2019-06-12T12:50:23.173832000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.202993000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.232648000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.261545000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.290550000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.319805000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.348640000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.353030000Z INFO  exonum::node::consensus] LEADER: pool = 0
[2019-06-12T12:50:23.371825000Z INFO  exonum::node::consensus] COMMIT ====== height=3547, proposer=3, round=1, committed=0, pool=0, hash=52d8b7406c4dd92ef8d722a7bc2cc3a797e2eee6edd95ade1a5562bcde75f14e
[2019-06-12T12:50:23.381224000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.410648000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.440263000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.468613000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.498375000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
[2019-06-12T12:50:23.527326000Z ERROR exonum::events::error] An error occurred: Cannot verify message.
Arsen Guzhva
@Erchard
How to calc tx_hash before sending to blockchain.
Without blockchain.
?
andrew lyon
@orthecreedence
hi, is there any way to use rust enums with the built in protobuf serialization in exonum?
for instance if i have something like enum Permissions { UserCreate, UserUpdate, ... } can that map directly to a proto file without doing a custom impl with u32 or something (where UserCreate = 1, UserUpdate = 2, etc)?
andrew lyon
@orthecreedence
nevermind, figured it out, did a mix of serde_json and implementing ProtobufConvert manually
Michael Popsuev
@sheb-gregor
@orthecreedence Exonum doesn't support protobuf enums out of box, in our team we have a macro for enums, which impl protobuf::ProtobufEnum, std::str::FromStr, exonum::proto::ProtobufConvert and some other traits. If you need, I can share macro and example of use
Michael Popsuev
@sheb-gregor
@Erchard first, you need to serialize the full transaction to a byte array, and then use SHA256 to get the hash sum
andrew lyon
@orthecreedence
@sheb-gregor can you share? that sounds like something that could come in handy. thank you!
also, is there a good way to deal with optional fields in the protobufs? it seems things like strings come through as "" (which is the protobuf default, so seems fine) but let's say there's a transaction that takes a PublicKey as a field in a protobuf message...is there a way to make that field optional? i'm getting an error Wrong PublicKey size
Michael Popsuev
@sheb-gregor
PublicKey type has method PublicKey::zero() — returns valid empty PK.
andrew lyon
@orthecreedence
@sheb-gregor is there a way to send that empty PK from a node client that doesn't fail when deserializing a transaction?
andrew lyon
@orthecreedence
also, any word on when merkledb will be ready? i was looking at the master version of the cryptocurrency-advanced example and the schema looks much nicer :)
sigmatics
@sigma67

@skhoroshavin Nov 02 2018 19:56 Hello. Yes, we will, of course. I cannot give you an exact estimate right now. We're already using benchmark tools for our internal purposes and we just need to spend a bit of time to polish them before making them opensource

Are you still planning to open source the benchmarking tool? It's not on the roadmap as far as I can see

Ilya Bogdanov
@vitvakatu

@orthecreedence

also, any word on when merkledb will be ready? i was looking at the master version of the cryptocurrency-advanced example and the schema looks much nicer :)

It's hard to say, but the major part of work is done.

@sigma67 I do not have an answer right now, but I will find it and return to you

is there a way to send that empty PK from a node client that doesn't fail when deserializing a transaction?

Not sure I understand. You should be able to send zeroed PK, but you can't send empty, because the size of PK in bytes is always known and you can't change it.

andrew lyon
@orthecreedence
makes sense, thank you!
Dmitry Timofeev
@dmitry-timofeev

@Erchard first, you need to serialize the full transaction to a byte array, and then use SHA256 to get the hash sum

If you use Java light client, then you can simply invoke TransactionMessage#hash()

sigmatics
@sigma67

@vitvakatu

@sigma67 I do not have an answer right now, but I will find it and return to you

Any news?

Aleksey Sidorov
@alekseysidorov
He is on vacation now.
Ilya Bogdanov
@vitvakatu
@sigma67 sorry, not such plans for a nearest future.
zakum1
@zakum1
Hi, I have 4 validating nodes running in a network. If one crashes, then the concensus process stops (no blocks are created by the other three nodes). In the documentation, it says that the network should be tolerant to < 1/3 byzantine nodes (which seems to imply that 1 faulty node out of 4 should be tolerated). Is this correct?
Alternatively, if we apply the formula that we need 2/3+1 functioning nodes, then in a 4 node network, this is 8/3+1 = 3.6, in a 5 node network 10/3+1 = 4.3 and in a 6 node network, 12/3+1 = 5; then from these calculations (assuming we round up), we need 6 nodes at least to allow for a single node to be faulty? Is this correct?
Dmitry Timofeev
@dmitry-timofeev

Released Exonum Java 0.7.0 with Testkit support for easier integration testing of Java services and massive speed-up in transaction processing :tada:

See the release page for the changelog, binaries, and the migration guide: https://github.com/exonum/exonum-java-binding/releases/tag/ejb%2Fv0.7.0

sigmatics
@sigma67
@zakum1 I don't think that's what should happen. IIRC my networks always kept going as long as there were 2f+1 out of 3f+1 nodes active (f being the number of tolerated node failures)
Dean Harry
@dharry1968
hi all, anyone around to help a Exonum noob with a build problem?
Dean Harry
@dharry1968
Can seem to get protobuf to compile... getting to Compiling protobuf v2.8.0 and then it errors saying Could not compile protobuf... any ideas?
Oleksandr Anyshchenko
@aleksuss
Released Exonum 0.12 "Koepcke's Screech-Owl" with MerkleDB storage and simplified bootstrapping procedure. See full list of changes here: https://github.com/exonum/exonum/releases/tag/v0.12
Oleksandr Anyshchenko
@aleksuss
@dharry1968 hi. What kind of OS do you use ? How have you tried to compile protobuf ? Manually or with some packet manager ?
ivan-ochc
@ivan-ochc
@dharry1968 , hi. You have to locally install protoc v3.
Dean Harry
@dharry1968
@ivan-ochc thanks, that was it...
Dean Harry
@dharry1968
@ivan-ochc now i'm getting an error: error: failed to run custom build command for librocksdb-sys v6.1.2 any thoughts on that one?
ivan-ochc
@ivan-ochc
@dharry1968, what kind of OS do you use? Did you install c++ build tool and LLVM?
Dean Harry
@dharry1968
@ivan-ochc is a fresh build of Ubuntu and yes, c++ and LLVM have both been installed...
ivan-ochc
@ivan-ochc
@dharry1968, are you trying to build example (cryptocurrency-advanced, timestamping) or just exonum itself (from exonum/exonum dir)?
Dean Harry
@dharry1968
@ivan-ochc just Exonum itself with "cargo test -p exonum" it get's as far as step 386 then fails with:
error occurred: Command "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "rocksdb/include/" "-I" "rocksdb/" "-I" "rocksdb/third-party/gtest-1.7.0/fused-src/" "-I" "snappy/" "-I" "." "-Wall" "-Wextra" "-msse2" "-msse4.1" "-msse4.2" "-mpclmul" "-std=c++11" "-Wno-unused-parameter" "-DSNAPPY=1" "-DNDEBUG=1" "-DHAVE_PCLMUL=1" "-DHAVE_SSE42=1" "-DOS_LINUX=1" "-DROCKSDB_PLATFORM_POSIX=1" "-DROCKSDB_LIB_IO_POSIX=1" "-o" "/home/ubuntu/exonum/target/debug/build/librocksdb-sys-6d4e3e5047f98210/out/rocksdb/db/column_family.o" "-c" "rocksdb/db/column_family.cc" with args "c++" did not execute successfully (status code exit code: 4).
ivan-ochc
@ivan-ochc
@dharry1968 , try to install librocksdb within apt and set env variable "export ROCKSDB_LIB_DIR=/usr/lib"
Dean Harry
@dharry1968
@ivan-ochc the export was the problem :) got all the way through to compiling exonum but then errored at that point. The output isn't too helpful just error: Could not compile 'exonum' and then the Caused By: which ended in a signal:9 SIGKILL: kill
ivan-ochc
@ivan-ochc
@dharry1968, do you have enough RAM?
Dean Harry
@dharry1968
@ivan-ochc quite possibly not :) what is the suggested minimum?
ivan-ochc
@ivan-ochc
@dharry1968 , 2gb should be enough. what is your RAM size?
Dean Harry
@dharry1968
@ivan-ochc currently 512mb - i'll increase it to 2gb and see how it goes...
Dean Harry
@dharry1968
@ivan-ochc thanks for the assist - that got it working :)
Yu
@Fatman13
Hello Exonum team, is there any way to quickly bootstrap a key value pair storage blockchain project?
A minimal barebone example?
Dean Harry
@dharry1968
@ivan-ochc how much memory do you think is required to run the cryptocurrency example? It seems to compile for quite a while and then errors with: INFO 2019-08-22T13:01:02Z: rustc::traits::error_reporting: skipping ErrorDescriptor { predicate: Binder(TraitPredicate(<[type error] as std::marker::Sized>)),index: Some(2) } (implied by ErrorDescriptor { predicate: Binder(TraitPredicate(<[type error] as std::marker::Sized>)), index: Some(0) }) not sure if this is a memory issue or not?
ivan-ochc
@ivan-ochc
@dharry1968, what version of Rust do you use?
ivan-ochc
@ivan-ochc