Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • D duniter-gva
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • nodesnodes
  • rustrust
  • modules
  • duniter-gva
  • Merge requests
  • !1

WIP feat(db+indexer): certifications

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Pascal Engélibert requested to merge tuxmain/duniter-gva:certifications into master May 21, 2021
  • Overview 1
  • Commits 1
  • Pipelines 2
  • Changes 10

@librelois Voici un début.

  • J'ai dû un peu modifier gen_next_wot_id car les deux premiers IDs générés étaient 0 (les tests ne généraient qu'une seule identité donc ça ne se voyait pas).
  • J'ai aussi eu quelques problèmes de traits avec le schéma de db, donc j'ai dû créer des types wrappers pour les valeurs. Il voulait qu'ils implémentent zerocopy::{AsBytes, FromBytes} (j'ai réussi à faire ça uniquement avec #[repr(packed)]) et Default. Les contraintes pour X semblent être différentes si la valeur est X ou Vec<X> par exemple, c'est bizarre.
  • À propos de WotId: Est-il judicieux de stocker des usize en db ? Ça peut causer des problèmes si on change d'architecture.
  • J'ai un panic dans le test test_update_certifications: (peut-être à cause du #[repr(packed)] ?)
panicked at 'source slice length (33) does not match destination slice length (32)'
stack backtrace:
   0: rust_begin_unwind
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/panicking.rs:92:14
   2: core::slice::<impl [T]>::copy_from_slice::len_mismatch_fail
             at /rustc/9bc8c42bb2f19e745a63f3445f1ac248fb015e53/library/core/src/slice/mod.rs:3041:13
   3: core::slice::<impl [T]>::copy_from_slice
             at /home/tuxmain/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/mod.rs:3048:13
   4: <duniter_gva_db::values::PublicKeyDb as kv_typed::from_bytes::FromBytes>::from_bytes
             at /home/tuxmain/Documents/projets/duniter-gva/db/src/values.rs:75:9
   5: <kv_typed::backend::memory::MemCol as kv_typed::backend::BackendCol>::get::{{closure}}::{{closure}}
             at /home/tuxmain/.cargo/git/checkouts/duniter-core-11cd823ec7c898cf/56dd979/tools/kv_typed/src/backend/memory.rs:104:30
   6: core::option::Option<T>::map
             at /home/tuxmain/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs:487:29
   7: <kv_typed::backend::memory::MemCol as kv_typed::backend::BackendCol>::get::{{closure}}
             at /home/tuxmain/.cargo/git/checkouts/duniter-core-11cd823ec7c898cf/56dd979/tools/kv_typed/src/backend/memory.rs:102:13
   8: <kv_typed::key::U64BE as kv_typed::as_bytes::AsBytes>::as_bytes
             at /home/tuxmain/.cargo/git/checkouts/duniter-core-11cd823ec7c898cf/56dd979/tools/kv_typed/src/as_bytes.rs:81:17
   9: <kv_typed::backend::memory::MemCol as kv_typed::backend::BackendCol>::get
             at /home/tuxmain/.cargo/git/checkouts/duniter-core-11cd823ec7c898cf/56dd979/tools/kv_typed/src/backend/memory.rs:101:9
  10: kv_typed::transactional_write::TxColRw<BC,E>::get
             at /home/tuxmain/.cargo/git/checkouts/duniter-core-11cd823ec7c898cf/56dd979/tools/kv_typed/src/transactional_write.rs:76:38
  11: duniter_gva_indexer::certifications::update_certifications
             at ./src/certifications.rs:41:38
...
  • Dans db, certains noms sont préfixés par gva, d'autres non. Puisqu'on est déjà dans duniter-gva je choisis de ne pas le faire, mais ça pourrait être harmonisé.

Voilà il y a des TODO un peu partout où j'ai des doutes, et je me lancerai dans le revert quand les tests de l'apply passeront. 😃

Edit: Chose étonnante, le pipeline a une erreur de compilation, alors que chez moi ça compile bien. (je suis bien en stable x86_64 1.52.1)

Edited May 21, 2021 by Pascal Engélibert
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: certifications