Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 27 09:22
    vitvakatu unassigned #363
  • Sep 21 07:36
    aleksuss closed #2005
  • Sep 20 20:55
    davidoabile commented #2005
  • Sep 20 13:18

    aleksuss on master

    Bump MSRV up to 1.55.0 (compare)

  • Sep 20 12:05
    aleksuss commented #2003
  • Sep 20 11:29
    aleksuss synchronize #2004
  • Sep 20 10:58
    aleksuss commented #2005
  • Sep 20 10:57

    aleksuss on master

    Bump secret-tree dependency (compare)

  • Sep 20 01:23
    davidoabile opened #2005
  • Sep 02 13:36
    tkintscher review_requested #2004
  • Sep 02 13:36
    tkintscher opened #2004
  • Aug 28 16:24
    Tangziyi1 opened #2003
  • Aug 02 14:16

    dependabot-preview[bot] on cargo

    (compare)

  • Aug 02 14:16
    dependabot-preview[bot] closed #1991
  • Aug 02 14:16
    dependabot-preview[bot] commented #1991
  • Aug 02 14:16
    dependabot-preview[bot] labeled #2002
  • Aug 02 14:16
    dependabot-preview[bot] review_requested #2002
  • Aug 02 14:16
    dependabot-preview[bot] opened #2002
  • Aug 02 14:16

    dependabot-preview[bot] on cargo

    Update semver requirement from … (compare)

  • Jul 23 14:15

    dependabot-preview[bot] on cargo

    (compare)

Vyacheslav Gudkov
@vimmerru
Our use case is creation of initial nyms that can onboard others. For crypto currency use case it can be just generation of initial money supply.
Vyacheslav Gudkov
@vimmerru
Hello, i am trying to debug simple service that is very similar to example with state proofs. I have a mutable entity inside of ProofMapIndex. The problem is in about 25% of cases i am getting UnmatchedRootHash on table proof verification. Seems there are some races. Any ideas what can be the reason?
Vyacheslav Gudkov
@vimmerru

getting UnmatchedRootHash on table proof verification

FYI the cause of the problem was usage of entity type with unpredictable ordering and as a result serialization and hashing.

erdeivit
@erdeivit
If I modify any .rs inside the exonum-node folder, how can I compile it in a faster way?
erdeivit
@erdeivit
I mean I can't see the changes when I run the nodes in the cryptocurrency tutorial if I edit anything inside the exonum-node folder
Oleksandr Anyshchenko
@aleksuss
Have you recompiled the node after making changes ?
erdeivit
@erdeivit
That was the point. I was only recompiling exonum-node, not the example.
erdeivit
@erdeivit
I'm not used to work with that high-level code projects but, how do manage about implementing something new? Is there a way to go through the functions? Insert breakpoints? To see the "Local Variables" and that stuff? I normaly click "Start debugging" and I get easy control from the process but here i guess is not that easy. Inside contributing docs there is no reference about that. Maybe it is an low-level doubt.
Alexander Irbis
@alexander-irbis
@erdeivit You can try IntelliJ Idea / CLion with the Rust plugin
Another popular tool is VSCode.
sergiuchuckmisha
@sergiuchuckmisha

How is it possible to modify data of one service from another service?

In Exonum 0.10.3 it was possible like this:
fn execute(&self, mut context: TransactionContext),..
{
let mut schema = OtherSchema::new(context.fork());

Even now it is possible to compile construction:
fn method(&self, context: ExecutionContext<'_>,...
{
let mut schema = OtherSchema::new(context.service_data());

but this approach doesn't work for exonum v1.0.0-rc.1: obtained schema is empty.

Oleksandr Anyshchenko
@aleksuss
Access to the database is now isolated for services. A service cannot get the write access to another service or the blockchain schema. It was introduced in Exonum 0.13.0-rc.2 for security reasons.
Hisham Ismail
@mhishami

Hi Guys,

Just a quick question on the example cryptocurrency-advanced.

Running from the Web, I transferred to a public key:
195b5417bee1a8e0c8853615e45c04900f76ad0e7cc58a24903c6882e7e33e46 as the recipient, from a sender public key of 84bccb128bd0940c91aca904910219518686c17779f2b9608dd0be8fdfaa1686

I can see the funds are sent, but in the log, it showed a different to address.

{
  "to": "42f5db7395f22d8649f4e66ef4daeef92750de519fff049fd206decd6dbc966f",
  "amount": 100,
  "seed": 757009448632885400,
  "hash": "04bcf3666b1753ef4a168f01be50c0d94a65d33167912031a60f74aa009dbd39"
}

Is this intended?

And when I run from a ProtocolBuffer, I got

"status": {
        "type": "service_error",
        "description": "Receiver doesn't exist.\n\nCan be emitted by `Transfer` or `Issue`.",
        "code": 2,
        "runtime_id": 0,
        "call_site": {
            "instance_id": 3,
            "call_type": "method",
            "method_id": 0
        }
    },

Hopefully, somebody can explain me on the missing receiver. I'm still using the same sender and receiver as per above, which is ok on the Web.

Hisham Ismail
@mhishami

I'm doing this directly from Flutter/Dart using ProtocolBuffer, as Dart language is not fully supported as official client.

For example, the issue funds works as intended. I can reload, create wallet and all. Here's the code:

  /// Issue funds, or reload with the [amount] is the amount to be reloaded
  /// signed with the sender's [KeyPair]
  ///
  SignedMessage signIssueFunds(String amount, NaCl.KeyPair keyPair) {
    assert(amount.isNotEmpty);

    /// Prepare the [Issue] with [amount] and [seed]
    ///
    Issue issue = Issue()
      ..amount = Int64.parseInt(amount)
      ..seed = _getSeed();

    /// Return a signed message for [methodId], [arguments], and [KeyPair]
    ///
    return _signGeneratedMessage(TX_ISSUE_ID, issue.writeToBuffer(), keyPair);
  }

But the transfer didn't work as it says missing recipient key as mentioned above. The code below follows exactly the data needed in the ProtocolBuffer generated files. Otherwise, I cannot get the error response from Exonum node. Here's the gist of the code

  SignedMessage signTransferFunds(
      Uint8List to, String amount, NaCl.KeyPair keyPair) {
    assert(to.isNotEmpty);
    assert(amount.isNotEmpty);

    /// Prepare the [Transfer] with, [to], [amount], and [seed]
    ///
    Transfer transfer = Transfer()
      ..to = (Hash()..data = to)
      ..amount = Int64.parseInt(amount)
      ..seed = _getSeed();

    /// Return a signed message for [methodId], [arguments], and [KeyPair]
    ///
    return _signGeneratedMessage(
        TX_TRANSFER_ID, transfer.writeToBuffer(), keyPair);
  }

Anybody can point me to the right direction?
Thanks in advance.

Hisham Ismail
@mhishami
Nobody?
flowcietytim
@flowcietytim

Hi there, i am currently working on building an own application based on the CryptocurrencyAdvanced Tutorial. But whenever i call Exonum.sign() in js light client, i get a signature 128 Bytes in length, instead of the expected 64Bytes (which is ED25519 standard and also the result i get on Java light client).
This is (at least i think it is) the reason for Exonum rejecting my Transactions with "Malformed arguments for calling a service interface method: Wrong Signature size".
Is there anything to keep in mind when calling Exonum.sign() in Javascript light client?
Some more Details on what i am doing:

    var messageBytes = MyProtoMessage.encode(myMessage).finish()
    var signature = { data: Exonum.sign(keypair.secretKey, messageBytes) }
    console.log('signature: ', signature.data.length) //gives me signature: 128

Thanks in advance for any help!

2 replies
Oleksandr Anyshchenko
@aleksuss

Hello @mhishami.

I can see the funds are sent, but in the log, it showed a different to address.

Because it displays CallerAddress rather than PublicKey. Take a look here https://docs.rs/exonum/1.0.0/exonum/runtime/struct.CallerAddress.html

I hope it will help you
Alexander Kolesov
@askolesov
Hello! Is Tendermint's sentry node architecture possible in Exonum? It's the architecture where consensus nodes are hidden for the public and communicates via observers. Thanks.
https://forum.cosmos.network/t/sentry-node-architecture-overview/454
2 replies
flowcietytim
@flowcietytim

Hi, is there a way to integrate the [explorer websocket(https://docs.rs/exonum-explorer-service/1.0.0-rc.1/exonum_explorer_service/api/websocket/index.html) with java light client? The crate doc obviously only shows rust usage, but i cannot find anything regarding that in the java light client doc and neither did i fiend the corresponding classes in exonum-java.

In a semi-related second question: Is it planned to expand the subscription-functionality of the explorer api/ws? The TransactionFilter feels like a first step, but more filters for transactions and also for blocks would be quite nice (e.g. only blocks containing transaction with hash x, only transactions with status y etc.). Changes in system configuration and more events might be interesting for clients, too.
Thanks in advance!

6 replies
Victor Dudochkin
@dudochkin-victor
hi guys. i m a newbie in Exonum. I want to ask is there way to dynamically add/remove blockchain nodes whithout configuration?
Oleksandr Anyshchenko
@aleksuss
Victor Dudochkin
@dudochkin-victor
tnx
Krishna Singh
@KSR30_gitlab
Screenshot from 2020-08-17 10-10-07.png
Hello ! I am new to exonum. I have a query regarding the design of Land Registry Example (https://exonum.com/demo/landregistry/#/plots), that how you created Plot Objects. And is creation of these objects are stored on the blockchain?
Oleksandr Anyshchenko
@aleksuss
Hello. Plot objects are created from geojson files. A creation isn't stored in the blockchain. Only plot objects.
2 replies
DobPP
@dobpp
Hi Everyone
Is Exonum has any open position for front-end developers?
1 reply
maratnek
@maratnek
Hi. How can I exchange crypto functions for my own?
2 replies
Vladislav A.
@AiFreeWay
Hello! How can I create Auditor node? I see the term in glossary, but I can't find any docs about. Do you have a tutorial or docs? If not, please tell me where to look?
Marat
@gmarat
Hi. How can I figure out where you have up-to-date documentation sources? Where can you offer PR? The master branch from the https://github.com/exonum/exonum-doc repository does not appear to be posted at https://exonum.com/doc.
If you try to implement a demo project on Cryptocurrency Tutorial from scratch, then the first mistake is the absence of anyhow lib in Cargo.toml
Adrien FAURE
@adfaure
Hello, I just come back from one week journey were I tried to use sawtooth, but I couldn't find a way to make sawtooth working. So I am looking into exonum, and I wonder if it is possible to make "permisionless" network with exonum. The doc says: The Exonum framework is oriented towards creating permissioned blockchains, that is, blockchains with the known set of blockchain infrastructure providers. , does oriented mean "only" ? Ty you very much.
flowcietytim
@flowcietytim
Hi @aleksuss, i stumbled upon a github-comment of yours stating "the project is on hold".
Can you give an insight on what this means? Since we are building a company on an exonum-based product, it is important for us to know, especially since there is no update on the blog etc.
Oleksandr Anyshchenko
@aleksuss
Hello @flowcietytim. It means that active development is on hold now. The current state of the project implies critical bugs fixing and update some dependencies.
3 replies
Alexander Kalankhodzhaev
@kalaninja
Hey everyone. Is there a way to write from one service into a schema of another one?
1 reply
PHAYES
@phayes

Hi everyone,

I'm trying to find an exonum client for Rust, to be able to post transactions using rust. I can find reference to a light-client for JavaScript, Python and Java. Where can I find the client for Rust?

Thanks!

Petr
@PeterZhizhin

Hi! I have a source code of a voting system built with Exonum. The voting system has some custom service configuration.

Here is how the configuration is done: https://github.com/PeterZhizhin/blockchain-voting_2021_extracted/blob/main/blockchain/dit-blockchain-source/services/votings-service/src/service.rs#L56-L76
The config protobuf is defined here: https://github.com/PeterZhizhin/blockchain-voting_2021_extracted/blob/main/blockchain/dit-blockchain-source/services/votings-service/src/proto/config.proto#L5-L7

I am unable to provide the public keys via the config. I've tried specifying the public_api_keys in the template.toml and in the node.toml in the following way:

[services_configs.votings_service]
public_api_keys=["0bc1ee47e737e2884e035e3ebf6d5c2516667d5336a6e5af4f1e1c3c1b4f92c4"]

It didn't work. I've tried using the python -m exonum_launcher, but the voting service doesn't provide service.proto file and fails with the following error:

ModuleNotFoundError: No module named 'exonum_modules.dit_votings_service_1_0_0.service_pb2'

How do I configure the public_api_keys