profile
viewpoint

christianpoveda/pijama_legacy 48

A functional programming language

christianpoveda/sire 18

A symbolic evaluator for MIR

Alex6323/bee-p 15

Bee prototype.

christianpoveda/librarian 8

A tiny library manager for digital documents

christianpoveda/chevre 1

A zeroth-order logic interpreter

christianpoveda/pacman 1

Porting http://ai.berkeley.edu/project_overview.html to Rust

push eventAlex6323/bee-p

Christian Poveda

commit sha 65432db999046c28eae7e52131051cd1c7861c9a

fetch and insert messages

view details

push time in 4 days

PR opened Alex6323/bee-p

Add storage mappings for messages
+67 -0

0 comment

4 changed files

pr created time in 6 days

create barnchAlex6323/bee-p

branch : christian-map-messages

created branch time in 6 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 3b21d02ce728176512fc5656fc56dbe2ee691d2c

fix compilation errors

view details

push time in 7 days

push eventAlex6323/bee-p

Christian Poveda

commit sha f2d3e2103fb61eaa1ac79032e2b025703e0cdbe9

fix compilation errors

view details

push time in 7 days

push eventchristianpoveda/dotfiles

Christian Poveda

commit sha b55fffdd5b9b156c7e52362d2fc5a03c747a69dd

switch to terminator

view details

push time in 7 days

push eventchristianpoveda/dotfiles

Christian Poveda

commit sha bf8005ed2f6dda53bd280f38e1b2aed3a7a73c61

remove unused plugins

view details

Christian Poveda

commit sha 8d6c14a6abe7ffcfce3e4bb8177d953c68bb505b

update packages

view details

Christian Poveda

commit sha 4123d5d4ed3b715581d621ea018b2010a8af3a01

switch to terminator

view details

push time in 7 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

push eventAlex6323/bee-p

Christian Poveda

commit sha 325bf0d556b623b5e18c5cf9a7b14d8eb636d630

add deserialization

view details

Christian Poveda

commit sha f7829c44028e303f6e3394850f8499362b62b6a9

rename Packable methods

view details

Christian Poveda

commit sha d224412a671e8b759e7c95050c1168eecb3ed03b

fix broken test

view details

push time in 17 days

push eventAlex6323/bee-p

Christian Poveda

commit sha f9f081b17822d11ebdd2f99778682a11cd52d7ac

fix broken test

view details

push time in 18 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 8efc1a3e517424cbdc4a5893057bd55dbe732732

rename Packable methods

view details

push time in 18 days

push eventAlex6323/bee-p

Thibault Martinez

commit sha 4692c8a263e498a0afa80d50fb471b43667d4b1b

Fix clippy

view details

Thibault Martinez

commit sha 13586ba503138a0c408197ff415aeffd765d1fd5

TransactionId

view details

Christian Poveda

commit sha c6017e63d1c1cd95d97fb2ceb9a746890776ee8b

add bytes serialization

view details

Christian Poveda

commit sha 6956d0fff0c394317163d456e91a98d114c94bf0

change endianess

view details

Christian Poveda

commit sha 496c0ef0c4816ce21b23bc68d0872c4910cb6a1d

add deserialization

view details

Christian Poveda

commit sha 0fa2c17e27188f25e6db983da8ab6482e9c00c29

rename Packable methods

view details

push time in 18 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 4a27933b6f540467a032f11b665e5aa6fd0c38ed

change endianess

view details

Christian Poveda

commit sha 4c7d6c6b377b4c9a4aaefe61cbcf63f6eb599213

add deserialization

view details

Christian Poveda

commit sha fd23042abe36077d78facc20096c47f2293a280d

rename Packable methods

view details

push time in 18 days

PR opened Alex6323/bee-p

add bytes serialization for the new message layout
+455 -3

0 comment

20 changed files

pr created time in 18 days

create barnchAlex6323/bee-p

branch : christian-serialization

created branch time in 18 days

push eventchristianpoveda/cv

Christian Poveda

commit sha ef6546739b452f23577cf8bc0af89181dc8c092a

add phd

view details

push time in 19 days

pull request commentAlex6323/bee-p

TSA

Please check clippy when you feel the PR is ready.

rufsam

comment created time in 20 days

push eventAlex6323/bee-p

Christian Poveda

commit sha b53fd50bcb624b0b5031f1c676aa94f791e6105c

address clippy lints inside `bee-pow`

view details

Christian Poveda

commit sha 85b9d8a1e14fe9d11a57345d9493dee36b6895fc

address clippy lints inside `bee-transaction`

view details

Christian Poveda

commit sha 914847caf109f48cc8d2ac819cdb8fd3e51a9fcb

address clippy lints inside `bee-common-ext`

view details

Christian Poveda

commit sha d110b140be1d667746343062d2d4fa044806be79

address clippy lints inside `bee-network`

view details

Christian Poveda

commit sha 2f090026bcca73bc102bbd82824b900c52f2b578

address clippy lints inside `bee-protocol`

view details

Christian Poveda

commit sha a14c357a4dd0172113378d271d1ba5306471356b

allow module inception at the crate level

view details

Christian Poveda

commit sha e132f227634bdeeeb43d1967251765e5858cbd58

address clippy lints inside `bee-ledger`

view details

Christian Poveda

commit sha abbcdde613707d3604c292787d9d9c7b2c692e45

address clippy lints inside `bee-snapshot`

view details

Christian Poveda

commit sha ded8012bb7b2ff7b4c4db3ea8a7e894cff9e4e02

address clippy lints inside `bee-node`

view details

Christian Poveda

commit sha ef3afafa36c7652318daf4ad6c2d8e2596119d9e

address clippy lints inside `bee-storage`

view details

Christian Poveda

commit sha e7e45b1b9b6c01555dde41cb76356a25300031a7

address clippy lints inside `bee-test`

view details

Christian Poveda

commit sha da375291ce1b212ed8e4a980abfb9ef92de74da5

fix tests

view details

Christian Poveda

commit sha 9a236e125695ba01967a49a09c4d54b46b88eecc

Merge pull request #260 from Alex6323/christian-clippy-lints Address all clippy lints

view details

push time in 21 days

PR merged Alex6323/bee-p

Address all clippy lints
+155 -121

1 comment

51 changed files

christianpoveda

pr closed time in 21 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 85b9d8a1e14fe9d11a57345d9493dee36b6895fc

address clippy lints inside `bee-transaction`

view details

Christian Poveda

commit sha 914847caf109f48cc8d2ac819cdb8fd3e51a9fcb

address clippy lints inside `bee-common-ext`

view details

Christian Poveda

commit sha d110b140be1d667746343062d2d4fa044806be79

address clippy lints inside `bee-network`

view details

Christian Poveda

commit sha 2f090026bcca73bc102bbd82824b900c52f2b578

address clippy lints inside `bee-protocol`

view details

Christian Poveda

commit sha a14c357a4dd0172113378d271d1ba5306471356b

allow module inception at the crate level

view details

Christian Poveda

commit sha e132f227634bdeeeb43d1967251765e5858cbd58

address clippy lints inside `bee-ledger`

view details

Christian Poveda

commit sha abbcdde613707d3604c292787d9d9c7b2c692e45

address clippy lints inside `bee-snapshot`

view details

Christian Poveda

commit sha ded8012bb7b2ff7b4c4db3ea8a7e894cff9e4e02

address clippy lints inside `bee-node`

view details

Christian Poveda

commit sha ef3afafa36c7652318daf4ad6c2d8e2596119d9e

address clippy lints inside `bee-storage`

view details

Christian Poveda

commit sha e7e45b1b9b6c01555dde41cb76356a25300031a7

address clippy lints inside `bee-test`

view details

Christian Poveda

commit sha da375291ce1b212ed8e4a980abfb9ef92de74da5

fix tests

view details

push time in 21 days

Pull request review commentAlex6323/bee-p

Address all clippy lints

 impl GlobalSnapshot {          for line in reader.lines() {             let line = line.map_err(|_| Error::FailedIO)?;-            let tokens = line.split(";").collect::<Vec<&str>>();+            let tokens = line.split(';').collect::<Vec<&str>>(); -            if tokens.len() < 2 {-                return Err(Error::MissingSemicolon);-            } else if tokens.len() > 2 {-                return Err(Error::ExtraneousSemicolon);+            match tokens.len().cmp(&2) {+                Ordering::Less => return Err(Error::MissingSemicolon),+                Ordering::Greater => return Err(Error::ExtraneousSemicolon),+                Ordering::Equal => (),

I'm so mad I'm going to change it back to the previous version :trollface:

christianpoveda

comment created time in 21 days

PullRequestReviewEvent

push eventAlex6323/bee-p

Ngo Iok Ui (Wu Yu Wei)

commit sha d91bea60c24fb26822f5749a2d87b868acdbcdfc

Add atomic module to bee-transaction (#238) * Initial draft * Add syntactical validation * Add lexicographical order validation * Add signed transaction builder * Derive default trait instead of new * Update type of WotsAddress * Add bincode serialization for Input * Add serialization for Output * Fix input field name * Add signing process when building tx payload * Add wots support * Update changes from bee-signing * Add sematic verification for ed25 signature * Simplifiy Signature Unlock * Update error type using thiserror * Box payload enum varients * Derive Clone for all objects * Fix index type in legacy bundle * Update index to BIP32Path * Add prelude module * Update changes from BIP32Path * Update changes from slip10 v0.4 * Add Serialize trait to UnsignedTransaction * fix(deps) use bee `dev` branch * Derive Debug, Serialize traits to all payloads * Add Serde support to entire message * Add Bech32 support * Nits * Avoid name repetition * Impl From instead of from_ methods * Add From impls and fix tests * Use Seed enum from bee-signing-ext instead * Update output amount to NonZeroU64 * Add MessageBuilder * Add MessageBuilder to prelude * Update input path to BIP32Path * Update Seed paramters as reference instead * Update tx payload builder signature * Provide message getters and fix typo * Add no_std support * HASH_LENGTH * TAG_LENGTH * trunk/branch -> parent1/parent2 * Temporarily remove no_std * Remove Indexation pub field * Remove Reference pub field * Remove UnsignedData pub field * Fix compilation * Remove confusing Input new function * Remove confusing Output new function * Nonce returns a copy * Remove convenient methods * Remove Hash inner pub * Address module * Remove SerDe * Update some vec types to box * Update bound check method * Warnings * Constant ranges for input/output bounds * Remove Ord/PartialOrd derivation * Remove unnecessary traits derivation * Remove Milestone pub fields * Rename to SignatureSingleDepositOutput * Signature module * Clean Message and its Builder * Remove SignedData pub fields * Change payload order to respect RFC * UnsignedTransactionBuilder * To Bech32 clean * Safety check on Reference * UTXO safety check * Ed25519Address clean * WOTS safety checks * Remove Ed25519Signature pub fields * Make everything no_std again * Fmt Co-authored-by: Finance <finance@finances-mbp.localdomain> Co-authored-by: Lucas Nogueira <lucas@tauri.studio> Co-authored-by: Thibault Martinez <thibault@iota.org>

view details

Christian Poveda

commit sha b53fd50bcb624b0b5031f1c676aa94f791e6105c

address clippy lints inside `bee-pow`

view details

Christian Poveda

commit sha f962cd8fc4e4025ee0d7d0029241d761372be562

address clippy lints inside `bee-transaction`

view details

Christian Poveda

commit sha d254b28d2470d1e3267e89601e235133085ae78b

address clippy lints inside `bee-common-ext`

view details

Christian Poveda

commit sha c4abe5c61db82e57470bfc7c06a7d94a6b57d3cd

address clippy lints inside `bee-network`

view details

Christian Poveda

commit sha 7b2c79d49ecb04388e435d3e05a2da349fcbd676

address clippy lints inside `bee-protocol`

view details

Christian Poveda

commit sha 41ca56638fd2f264afc8dc8daa340bc643b23466

allow module inception at the crate level

view details

Christian Poveda

commit sha 4b0e182087d0c31dbb19d17d1c8219060f570fe4

address clippy lints inside `bee-ledger`

view details

Christian Poveda

commit sha be469fbb2a4527a1c72a98af61ac2f58e9e9d33d

address clippy lints inside `bee-snapshot`

view details

Christian Poveda

commit sha 352ce5733ad08d533581d66c9d0c46c6764efe06

address clippy lints inside `bee-node`

view details

Christian Poveda

commit sha 8fc509a6c82de0bedfbb0a5bca8063dbccf616fe

address clippy lints inside `bee-storage`

view details

Christian Poveda

commit sha d459cc5d92fc1ea32e5d7b937ef4fb6de9d29947

address clippy lints inside `bee-test`

view details

Christian Poveda

commit sha f904c6deef5463d57be14389df2a113d4ab1c882

fix tests

view details

Christian Poveda

commit sha 099a9e0fd0d34927386a302a6548837e488914bc

correct new atomic tx code

view details

push time in 21 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 0b85b8f9c8661d5da6f9dc39bd48894c96e498bc

fix tests

view details

push time in 21 days

Pull request review commentAlex6323/bee-p

Address all clippy lints

 impl GlobalSnapshot {          for line in reader.lines() {             let line = line.map_err(|_| Error::FailedIO)?;-            let tokens = line.split(";").collect::<Vec<&str>>();+            let tokens = line.split(';').collect::<Vec<&str>>(); -            if tokens.len() < 2 {-                return Err(Error::MissingSemicolon);-            } else if tokens.len() > 2 {-                return Err(Error::ExtraneousSemicolon);+            match tokens.len().cmp(&2) {+                Ordering::Less => return Err(Error::MissingSemicolon),+                Ordering::Greater => return Err(Error::ExtraneousSemicolon),+                Ordering::Equal => (),

your call, I'm happy with both

christianpoveda

comment created time in 21 days

PullRequestReviewEvent

push eventAlex6323/bee-p

Christian Poveda

commit sha a4ca2c3019943cc65c9a102928197cb48e32fb59

address clippy lints inside `bee-network`

view details

Christian Poveda

commit sha 4a1dbb42f2d7fefe318749c686910c748e18849e

address clippy lints inside `bee-protocol`

view details

Christian Poveda

commit sha 44d269438a2b00cbd8a6a214459aa97449ac8aa2

allow module inception at the crate level

view details

Christian Poveda

commit sha 1fddbd4f068868533249df87db93da1f7b314d06

address clippy lints inside `bee-ledger`

view details

Christian Poveda

commit sha eab9fc99e2a3165c1f4c5441e525c28b43946db5

address clippy lints inside `bee-snapshot`

view details

Christian Poveda

commit sha 0a5e7ad31d1deeb7bc24fac611773d3e09d03f5d

address clippy lints inside `bee-node`

view details

Christian Poveda

commit sha 3157fffbc168418321e9db046ec6af59d38f6f43

address clippy lints inside `bee-storage`

view details

Christian Poveda

commit sha 81815815767d021e269b289eb0e4669e4fe6ae6c

address clippy lints inside `bee-test`

view details

push time in 21 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 293f981e23dce0452c5a5b962cc09a0201cc0a86

address clippy lints inside `bee-transaction`

view details

Christian Poveda

commit sha 6f026419fdf8853d963279316b46b1232ef76dd1

address clippy lints inside `bee-common-ext`

view details

Christian Poveda

commit sha 7c9fb74e5808835ee5df6832c2dcb09c40abaa3d

address clippy lints inside `bee-network`

view details

Christian Poveda

commit sha fff663274b0eaf56aae727e736322de515b26966

address clippy lints inside `bee-protocol`

view details

Christian Poveda

commit sha b29bd6dd0dff649b13eb0170b5fbad9fb2b5eab7

allow module inception at the crate level

view details

Christian Poveda

commit sha 5c42d465c0dfe2c4abba12d3ae930ba4511a5623

address clippy lints inside `bee-ledger`

view details

Christian Poveda

commit sha abd1cc6f2df9196783e79ea180c332a8ea2e9506

address clippy lints inside `bee-snapshot`

view details

Christian Poveda

commit sha 532eb867b56d810de4052715dc157cb490b447a7

address clippy lints inside `bee-node`

view details

Christian Poveda

commit sha 5bef29f139c6601eb37edc2426dd7e99102e0363

address clippy lints inside `bee-storage`

view details

Christian Poveda

commit sha 4e916147b3c1b4e01af089ff4c488a1c05d849e7

address clippy lints inside `bee-test`

view details

push time in 21 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 67fd798bc00bf45590a1d0d29bb102acb776c352

address clippy lints inside `bee-protocol`

view details

Christian Poveda

commit sha 15064cb76b7954724ef6ee9b2d2f3c144a798b0b

allow module inception at the crate level

view details

Christian Poveda

commit sha 6f625e27c63a41695b301cdf50d1741e5e8fc768

address clippy lints inside `bee-ledger`

view details

Christian Poveda

commit sha c30de602781d6dcdd56dbc7615af16efa9db1755

address clippy lints inside `bee-snapshot`

view details

Christian Poveda

commit sha 7528fff85de6d4c2d7bcf34b36d90068413efda8

address clippy lints inside `bee-node`

view details

Christian Poveda

commit sha 7f74f872aff3161f211656c3b7381dc5529d54b3

address clippy lints inside `bee-storage`

view details

Christian Poveda

commit sha 4f0c6713bb9863a161865188c08e99ebd490e408

address clippy lints inside `bee-test`

view details

push time in 21 days

PR opened Alex6323/bee-p

Address all clippy lints
+139 -110

0 comment

49 changed files

pr created time in 21 days

push eventAlex6323/bee-p

Christian Poveda

commit sha d0a544a9e91146a7cb91878cdda03fae841961ad

Merge pull request #256 from Alex6323/christian-clippy-lints Fix compilation warnings

view details

Christian Poveda

commit sha a97999a2b4629f5619968c1eafea55d7aa3151ae

Merge pull request #257 from Alex6323/christian-clippy-lints Fix debug assertions

view details

Christian Poveda

commit sha 475f9dd48960bcbc91686ce0fc0d645b78da8da8

address clippy lints inside `bee-pow`

view details

Christian Poveda

commit sha 1e83b3a75d1f6b185721111b42e0c2fd2f31974d

address clippy lints inside `bee-transaction`

view details

Christian Poveda

commit sha 3516df8d60bb40e7fb7235b6045e22ef70ed3779

address clippy lints inside `bee-common-ext`

view details

Christian Poveda

commit sha c96a3666be2a103aa4057721af1aac5e79b893b0

address clippy lints inside `bee-network`

view details

Christian Poveda

commit sha 5eb6988f13e8afcb29f77283477604524944ca92

address clippy lints inside `bee-protocol`

view details

Christian Poveda

commit sha a3cba544466d58a1bbb3f62e92f2a71e7bcba937

allow module inception at the crate level

view details

Christian Poveda

commit sha 6d64b0247e518126affbae7a495cc3fb360fe088

address clippy lints inside `bee-ledger`

view details

Christian Poveda

commit sha ba9f3dc586d83c1ff96ced0aa8f4023aee7c13e1

address clippy lints inside `bee-snapshot`

view details

Christian Poveda

commit sha ee36a91e7e09661e4863b7f48729fc9db2c43b3b

address clippy lints inside `bee-node`

view details

Christian Poveda

commit sha a7483b1d5b7d9feb8a74918b879c8b6bdef762c6

address clippy lints inside `bee-storage`

view details

Christian Poveda

commit sha f560b6ebda7d144538cb750a88f4d82f59ea7be6

address clippy lints inside `bee-test`

view details

push time in 21 days

PullRequestReviewEvent

Pull request review commentAlex6323/bee-p

TSA

 pub struct MsTangle {     snapshot_index: AtomicU32,     pruning_index: AtomicU32,     entry_point_index: AtomicU32,+    tip_pool: Arc<RwLock<WurtsTipPool>>,

by just looking at the API I assume is possible to mutate the tip pool from different threads at the same time and potentially cause a deadlock if dashmap/set were being used. How likely is that to happen is not something I can tell right now.

About using Mutex instead RwLock, I agree with Alex, there's only one method reading from the lock, all the other ones are mutable borrows. So unless the read-only method is called more frequently I think it'd be better to use a Mutex.

To be honest I'd rather avoid using DashMap/Set as this has caused a lot of trouble in the past that we weren't able to actually solve (the last deadlock stopped happening during the tokio drift, we don't know why). If this isn't a hot path I'd be tempted to do message passing even to have a lock-free solution.

Other aspect that we haven't considered here is if I'd be better to use an async-aware mutex instead of the std one. However I think this is not so relevant right now.

rufsam

comment created time in 21 days

PullRequestReviewEvent

push eventAlex6323/bee-p

Christian Poveda

commit sha e1d119d15bd5b5765607316572ebf15f2197eacc

fix debug_assert issue

view details

Christian Poveda

commit sha a97999a2b4629f5619968c1eafea55d7aa3151ae

Merge pull request #257 from Alex6323/christian-clippy-lints Fix debug assertions

view details

push time in 23 days

PR merged Alex6323/bee-p

Fix debug assertions
  • fix debug_assert issue
+4 -2

0 comment

2 changed files

christianpoveda

pr closed time in 23 days

PR opened Alex6323/bee-p

Fix debug assertions
  • fix debug_assert issue
+4 -2

0 comment

2 changed files

pr created time in 23 days

push eventAlex6323/bee-p

Christian Poveda

commit sha e1d119d15bd5b5765607316572ebf15f2197eacc

fix debug_assert issue

view details

push time in 23 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 5de414ef1f0f8de9f795ab333a1b59bd1b84588d

fix compilation warnings

view details

Christian Poveda

commit sha d0a544a9e91146a7cb91878cdda03fae841961ad

Merge pull request #256 from Alex6323/christian-clippy-lints Fix compilation warnings

view details

push time in 24 days

PR merged Alex6323/bee-p

Fix compilation warnings
+76 -30

0 comment

25 changed files

christianpoveda

pr closed time in 24 days

push eventAlex6323/bee-p

Thibault Martinez

commit sha ce40cfefa9d43f34643691007e4ba9332cc1ea5d

Create shiftleft-analysis.yml

view details

Thibault Martinez

commit sha b8ca5ffe05a89661403777184dfd7df723d63751

Update shiftleft-analysis.yml

view details

Thibault Martinez

commit sha 0beab0b0a20dbf054385c921d31088c78902ceda

Update shiftleft-analysis.yml

view details

Thibault Martinez

commit sha c8b02704909d9096236785f00c29c2a4c6e2ec54

Update shiftleft-analysis.yml

view details

Christian Poveda

commit sha 7ac723583f2fb645142a22e822e013d8d7265799

retry transactions even if the node is synced

view details

Christian Poveda

commit sha e0058a4af5da428003cb51008c8f5f1d9c208148

Merge pull request #251 from Alex6323/christian-fix-sync Solve desync issue

view details

Christian Poveda

commit sha 5de414ef1f0f8de9f795ab333a1b59bd1b84588d

fix compilation warnings

view details

push time in 25 days

PR opened Alex6323/bee-p

Fix compilation warnings
+76 -30

0 comment

25 changed files

pr created time in 25 days

create barnchAlex6323/bee-p

branch : christian-clippy-lints

created branch time in 25 days

delete branch Alex6323/bee-p

delete branch : christian-fix-sync

delete time in 25 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 7ac723583f2fb645142a22e822e013d8d7265799

retry transactions even if the node is synced

view details

Christian Poveda

commit sha e0058a4af5da428003cb51008c8f5f1d9c208148

Merge pull request #251 from Alex6323/christian-fix-sync Solve desync issue

view details

push time in 25 days

PR merged Alex6323/bee-p

Solve desync issue

This PR avoids dropping milestone requests when synced.

+7 -7

0 comment

2 changed files

christianpoveda

pr closed time in 25 days

push eventAlex6323/bee-p

Christian Poveda

commit sha 7ac723583f2fb645142a22e822e013d8d7265799

retry transactions even if the node is synced

view details

push time in 25 days

push eventchristianpoveda/dotfiles

Christian Poveda

commit sha 65e46e97a675fd03ba0c601d800d4df5147b3a02

add discord

view details

push time in 25 days

push eventchristianpoveda/dotfiles

Christian Poveda

commit sha d02947c6aa0c0f460cc80c48cfcb67d0ae07d0e2

update mega package

view details

push time in 25 days

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++mod input;+mod output;+mod unlock;+mod unsigned_transaction;++use crate::atomic::{payload::Payload, Error};++pub use bee_signing_ext::Seed;+pub use input::{Input, UTXOInput};+pub use output::{Address, Output, SigLockedSingleDeposit};+pub use unlock::{Ed25519Signature, ReferenceUnlock, SignatureUnlock, UnlockBlock, WotsSignature};+pub use unsigned_transaction::UnsignedTransaction;++use bee_signing_ext::{+    binary::{BIP32Path, Ed25519PrivateKey, Ed25519PublicKey, Ed25519Signature as Ed25Signature},+    Signature as SignatureTrait, Signer, Verifier,+};++use serde::{Deserialize, Serialize};++use alloc::vec::Vec;+use core::{cmp::Ordering, slice::Iter};++#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]+pub struct SignedTransaction {+    pub unsigned_transaction: UnsignedTransaction,+    pub unlock_block_count: u8,+    pub unlock_blocks: Vec<UnlockBlock>,+}++impl SignedTransaction {+    pub fn builder(seed: &Seed) -> SignedTransactionBuilder {+        SignedTransactionBuilder::new(seed)+    }++    pub fn validate(&self) -> Result<(), Error> {+        // Should we add this field? -> Transaction Type value must be 0, denoting an Unsigned Transaction++        // Inputs validation+        let transaction = &self.unsigned_transaction;+        // Inputs Count must be 0 < x < 127+        match transaction.inputs.len() {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // At least one input must be specified+        if transaction.inputs.is_empty() {+            return Err(Error::EmptyError);+        }++        let mut combination = Vec::new();+        for i in transaction.inputs.iter() {+            // Input Type value must be 0, denoting an UTXO Input.+            match i {+                Input::UTXO(u) => {+                    // Transaction Output Index must be 0 ≤ x < 127+                    match u.index() {+                        0..=126 => (),+                        _ => return Err(Error::CountError),+                    }++                    // Every combination of Transaction ID + Transaction Output Index must be unique in the inputs set.+                    if !insert_combination(&mut combination, u) {+                        return Err(Error::DuplicateError);+                    }+                }+            }+        }++        // Inputs must be in lexicographical order of their serialized form.+        if !is_sorted(transaction.inputs.iter()) {+            return Err(Error::OrderError);+        }++        // Output validation+        // Outputs Count must be 0 < x < 127+        match transaction.outputs.len() {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // At least one output must be specified+        if transaction.outputs.is_empty() {+            return Err(Error::EmptyError);+        }++        let mut total = 0;+        let mut combination = Vec::new();+        for i in transaction.outputs.iter() {+            // Output Type must be 0, denoting a SigLockedSingleDeposit.+            match i {+                output::Output::SigLockedSingleDeposit(u) => {+                    // Address Type must either be 0 or 1, denoting a WOTS- or Ed25519 address.++                    // If Address is of type WOTS address, its bytes must be valid T5B1 bytes.++                    // The Address must be unique in the set of SigLockedSingleDeposits+                    if !insert_combination(&mut combination, u.address()) {+                        return Err(Error::DuplicateError);+                    }++                    // Amount must be > 0+                    let amount = u.amount().get();+                    if amount == 0 {+                        return Err(Error::AmountError);+                    }++                    total += amount;+                }+            }+        }++        // Outputs must be in lexicographical order by their serialized form+        if !is_sorted(transaction.outputs.iter()) {+            return Err(Error::OrderError);+        }++        // Accumulated output balance must not exceed the total supply of tokens 2'779'530'283'277'761+        if total > 2779530283277761 {+            return Err(Error::AmountError);+        }++        // Payload Length must be 0 (to indicate that there's no payload) or be valid for the specified payload type.+        // Payload Type must be one of the supported payload types if Payload Length is not 0.++        // Unlock Blocks validation+        // Unlock Blocks Count must match the amount of inputs. Must be 0 < x < 127.+        match self.unlock_block_count {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // Unlock Block Type must either be 0 or 1, denoting a Signature Unlock Block or Reference Unlock block.

where's this enforced?

wusyong

comment created time in 25 days

PullRequestReviewEvent

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++mod input;+mod output;+mod unlock;+mod unsigned_transaction;++use crate::atomic::{payload::Payload, Error};++pub use bee_signing_ext::Seed;+pub use input::{Input, UTXOInput};+pub use output::{Address, Output, SigLockedSingleDeposit};+pub use unlock::{Ed25519Signature, ReferenceUnlock, SignatureUnlock, UnlockBlock, WotsSignature};+pub use unsigned_transaction::UnsignedTransaction;++use bee_signing_ext::{+    binary::{BIP32Path, Ed25519PrivateKey, Ed25519PublicKey, Ed25519Signature as Ed25Signature},+    Signature as SignatureTrait, Signer, Verifier,+};++use serde::{Deserialize, Serialize};++use alloc::vec::Vec;+use core::{cmp::Ordering, slice::Iter};++#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]+pub struct SignedTransaction {+    pub unsigned_transaction: UnsignedTransaction,+    pub unlock_block_count: u8,+    pub unlock_blocks: Vec<UnlockBlock>,+}++impl SignedTransaction {+    pub fn builder(seed: &Seed) -> SignedTransactionBuilder {+        SignedTransactionBuilder::new(seed)+    }++    pub fn validate(&self) -> Result<(), Error> {+        // Should we add this field? -> Transaction Type value must be 0, denoting an Unsigned Transaction++        // Inputs validation+        let transaction = &self.unsigned_transaction;+        // Inputs Count must be 0 < x < 127+        match transaction.inputs.len() {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // At least one input must be specified+        if transaction.inputs.is_empty() {+            return Err(Error::EmptyError);+        }++        let mut combination = Vec::new();+        for i in transaction.inputs.iter() {+            // Input Type value must be 0, denoting an UTXO Input.+            match i {+                Input::UTXO(u) => {+                    // Transaction Output Index must be 0 ≤ x < 127+                    match u.index() {+                        0..=126 => (),+                        _ => return Err(Error::CountError),+                    }++                    // Every combination of Transaction ID + Transaction Output Index must be unique in the inputs set.+                    if !insert_combination(&mut combination, u) {+                        return Err(Error::DuplicateError);+                    }+                }+            }+        }++        // Inputs must be in lexicographical order of their serialized form.+        if !is_sorted(transaction.inputs.iter()) {+            return Err(Error::OrderError);+        }++        // Output validation+        // Outputs Count must be 0 < x < 127+        match transaction.outputs.len() {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // At least one output must be specified+        if transaction.outputs.is_empty() {+            return Err(Error::EmptyError);+        }++        let mut total = 0;+        let mut combination = Vec::new();+        for i in transaction.outputs.iter() {+            // Output Type must be 0, denoting a SigLockedSingleDeposit.+            match i {+                output::Output::SigLockedSingleDeposit(u) => {+                    // Address Type must either be 0 or 1, denoting a WOTS- or Ed25519 address.++                    // If Address is of type WOTS address, its bytes must be valid T5B1 bytes.++                    // The Address must be unique in the set of SigLockedSingleDeposits+                    if !insert_combination(&mut combination, u.address()) {+                        return Err(Error::DuplicateError);+                    }++                    // Amount must be > 0+                    let amount = u.amount().get();+                    if amount == 0 {+                        return Err(Error::AmountError);+                    }++                    total += amount;+                }+            }+        }++        // Outputs must be in lexicographical order by their serialized form+        if !is_sorted(transaction.outputs.iter()) {+            return Err(Error::OrderError);+        }++        // Accumulated output balance must not exceed the total supply of tokens 2'779'530'283'277'761+        if total > 2779530283277761 {+            return Err(Error::AmountError);+        }++        // Payload Length must be 0 (to indicate that there's no payload) or be valid for the specified payload type.+        // Payload Type must be one of the supported payload types if Payload Length is not 0.++        // Unlock Blocks validation+        // Unlock Blocks Count must match the amount of inputs. Must be 0 < x < 127.+        match self.unlock_block_count {

Given that there are a lot of bounds checks maybe factoring this out into something like

fn check_bound<E>(low: usize, high: usize, value: usize, err: impl Fn() -> E) -> Result<(), E> { ... }

would be a good idea.

wusyong

comment created time in 25 days

PullRequestReviewEvent

push eventAlex6323/bee-p

Thibault Martinez

commit sha 2f9c41d51b150f5a18030f951ecd8c7ab463191a

Flume switch (#252) * Switch futures mpsc to flume * Adapt to new boxed error * Use bee upstream * Remove redundant fuse

view details

Thibault Martinez

commit sha 9623c01791655c28905d5291f522dd60df7338f9

Fix tests

view details

Thibault Martinez

commit sha 49bfb4aca20ede6eabb1ee474b764f1102f5b196

Udeps

view details

Christian Poveda

commit sha e53e97ff9e6cb6d8df2ad102d36edaa3d764870e

retry transactions even if the node is synced

view details

push time in a month

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++mod hash;+mod message;++pub mod payload;++pub use hash::Hash;+pub use message::{Message, MessageBuilder};++use core::fmt;++#[derive(Debug)]+pub enum Error {

sadly it is not :/ I forgot about the no_std compatibility.

wusyong

comment created time in a month

PullRequestReviewEvent

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++pub use crate::atomic::payload::signed_transaction::{input::Input, output::Output};+use crate::atomic::payload::Payload;++use serde::{Deserialize, Serialize};++use alloc::vec::Vec;++#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]+pub struct UnsignedTransaction {+    pub inputs: Vec<Input>,

same question about Box<[T]>.

wusyong

comment created time in a month

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++use serde::{Deserialize, Serialize};++use alloc::vec::Vec;++#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]+pub struct SignedData {+    pub data: Vec<u8>,+    pub public_key: [u8; 32],+    pub signature: Vec<u8>, // TODO change beck to array with length 64

same question about Box<[u8]>.

wusyong

comment created time in a month

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++mod input;+mod output;+mod unlock;+mod unsigned_transaction;++use crate::atomic::{payload::Payload, Error};++pub use bee_signing_ext::Seed;+pub use input::{Input, UTXOInput};+pub use output::{Address, Output, SigLockedSingleDeposit};+pub use unlock::{Ed25519Signature, ReferenceUnlock, SignatureUnlock, UnlockBlock, WotsSignature};+pub use unsigned_transaction::UnsignedTransaction;++use bee_signing_ext::{+    binary::{BIP32Path, Ed25519PrivateKey, Ed25519PublicKey, Ed25519Signature as Ed25Signature},+    Signature as SignatureTrait, Signer, Verifier,+};++use serde::{Deserialize, Serialize};++use alloc::vec::Vec;+use core::{cmp::Ordering, slice::Iter};++#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]+pub struct SignedTransaction {+    pub unsigned_transaction: UnsignedTransaction,+    pub unlock_block_count: u8,+    pub unlock_blocks: Vec<UnlockBlock>,+}++impl SignedTransaction {+    pub fn builder(seed: &Seed) -> SignedTransactionBuilder {+        SignedTransactionBuilder::new(seed)+    }++    pub fn validate(&self) -> Result<(), Error> {+        // Should we add this field? -> Transaction Type value must be 0, denoting an Unsigned Transaction++        // Inputs validation+        let transaction = &self.unsigned_transaction;+        // Inputs Count must be 0 < x < 127+        match transaction.inputs.len() {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // At least one input must be specified+        if transaction.inputs.is_empty() {+            return Err(Error::EmptyError);+        }++        let mut combination = Vec::new();+        for i in transaction.inputs.iter() {+            // Input Type value must be 0, denoting an UTXO Input.+            match i {+                Input::UTXO(u) => {+                    // Transaction Output Index must be 0 ≤ x < 127+                    match u.output_index {+                        0..=126 => (),+                        _ => return Err(Error::CountError),+                    }++                    // Every combination of Transaction ID + Transaction Output Index must be unique in the inputs set.+                    if !insert_combination(&mut combination, u) {+                        return Err(Error::DuplicateError);+                    }+                }+            }+        }++        // Inputs must be in lexicographical order of their serialized form.+        if !is_sorted(transaction.inputs.iter()) {+            return Err(Error::OrderError);+        }++        // Output validation+        // Outputs Count must be 0 < x < 127+        match transaction.outputs.len() {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // At least one output must be specified+        if transaction.outputs.is_empty() {+            return Err(Error::EmptyError);+        }++        let mut total = 0;+        let mut combination = Vec::new();+        for i in transaction.outputs.iter() {+            // Output Type must be 0, denoting a SigLockedSingleDeposit.+            match i {+                output::Output::SigLockedSingleDeposit(u) => {+                    // Address Type must either be 0 or 1, denoting a WOTS- or Ed25519 address.++                    // If Address is of type WOTS address, its bytes must be valid T5B1 bytes.++                    // The Address must be unique in the set of SigLockedSingleDeposits+                    if !insert_combination(&mut combination, &u.address) {+                        return Err(Error::DuplicateError);+                    }++                    // Amount must be > 0+                    let amount = u.amount.get();+                    if amount == 0 {+                        return Err(Error::AmountError);+                    }++                    total += amount;+                }+            }+        }++        // Outputs must be in lexicographical order by their serialized form+        if !is_sorted(transaction.outputs.iter()) {+            return Err(Error::OrderError);+        }++        // Accumulated output balance must not exceed the total supply of tokens 2'779'530'283'277'761+        if total > 2779530283277761 {+            return Err(Error::AmountError);+        }++        // Payload Length must be 0 (to indicate that there's no payload) or be valid for the specified payload type.+        // Payload Type must be one of the supported payload types if Payload Length is not 0.++        // Unlock Blocks validation+        // Unlock Blocks Count must match the amount of inputs. Must be 0 < x < 127.+        match self.unlock_block_count {+            1..=126 => (),+            _ => return Err(Error::CountError),+        }++        // Unlock Block Type must either be 0 or 1, denoting a Signature Unlock Block or Reference Unlock block.+        let mut combination = Vec::new();+        for (i, block) in self.unlock_blocks.iter().enumerate() {+            // Signature Unlock Blocks must define either an Ed25519- or WOTS Signature+            match block {+                UnlockBlock::Reference(r) => {+                    // Reference Unlock Blocks must specify a previous Unlock Block which is not of type Reference+                    // Unlock Block. Since it's not the first input it unlocks, it must have+                    // differente transaction id from previous one+                    if i != 0 {+                        match &transaction.inputs[i] {+                            Input::UTXO(u) => match &transaction.inputs[i - 1] {+                                Input::UTXO(v) => {+                                    if u.transaction_id != v.transaction_id {+                                        return Err(Error::IndexError);+                                    }+                                }+                            },+                        }+                    }++                    // The reference index must therefore be < the index of the Reference Unlock Block+                    if r.index >= i as u8 {+                        return Err(Error::IndexError);+                    }+                }+                UnlockBlock::Signature(s) => {+                    // A Signature Unlock Block unlocking multiple inputs must only appear once (be unique) and be+                    // positioned at same index of the first input it unlocks.+                    if !insert_combination(&mut combination, s) {+                        return Err(Error::DuplicateError);+                    }++                    // Since it's first input it unlocks, it must have differente transaction id from previous one+                    if i != 0 {+                        match &transaction.inputs[i] {+                            Input::UTXO(u) => match &transaction.inputs[i - 1] {+                                Input::UTXO(v) => {+                                    if u.transaction_id == v.transaction_id {+                                        return Err(Error::IndexError);+                                    }+                                }+                            },+                        }+                    }++                    // Semantic Validation: The Signature Unlock Blocks are valid, i.e. the signatures prove ownership+                    // over the addresses of the referenced UTXOs.+                    let serialized_inputs = bincode::serialize(&transaction.inputs[i]).map_err(|_| Error::HashError)?;+                    match s {+                        SignatureUnlock::Ed25519(sig) => {+                            let key = Ed25519PublicKey::from_bytes(&sig.public_key)?;+                            let signature = Ed25Signature::from_bytes(&sig.signature)?;+                            key.verify(&serialized_inputs, &signature)?;+                        }+                        SignatureUnlock::Wots(_) => {}+                    }+                }+            }+        }++        // TODO Semantic Validation+        // TODO The UTXOs the transaction references must be known (booked) and unspent.+        // TODO The transaction is spending the entirety of the funds of the referenced UTXOs to the outputs.++        Ok(())+    }+}++fn insert_combination<T: PartialEq>(combination: &mut Vec<T>, element: T) -> bool {+    let res = combination.iter().fold(true, |mut acc, i| {

maybe use .any()?

wusyong

comment created time in a month

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++mod hash;+mod message;++pub mod payload;++pub use hash::Hash;+pub use message::{Message, MessageBuilder};++use core::fmt;++#[derive(Debug)]+pub enum Error {

I think the Display and From implementations can be done in a more compact way using thiserror.

wusyong

comment created time in a month

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++use serde::{Deserialize, Serialize};++use alloc::vec::Vec;++#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]+pub struct Milestone {+    pub index: u32,+    pub timestamp: u64,+    pub merkle_proof: Vec<u8>, // TODO length is 64, change back to array since next version will support all traits

Maybe we could use Box<[u8]> here? Or can any of those vecs actually grow?

wusyong

comment created time in a month

Pull request review commentAlex6323/bee-p

Add atomic module to bee-transaction

+// Copyright 2020 IOTA Stiftung+//+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with+// the License. You may obtain a copy of the License at+//+//     http://www.apache.org/licenses/LICENSE-2.0+//+// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on+// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.+// See the License for the specific language governing permissions and limitations under the License.++use crate::{+    atomic::{payload::Payload, Error, Hash},+    Vertex,+};++use serde::{Deserialize, Serialize};++#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]+pub struct Message {+    trunk: Hash,+    branch: Hash,+    payload: Payload,+    nonce: u64,+}++impl Message {+    pub fn builder() -> MessageBuilder {+        MessageBuilder::new()+    }++    pub fn payload(&self) -> &Payload {+        &self.payload+    }++    pub fn nonce(&self) -> &u64 {

maybe this value should be copied? on most platforms this reference weights the same as the integer itself.

wusyong

comment created time in a month

PullRequestReviewEvent
PullRequestReviewEvent

PR opened Alex6323/bee-p

Solve desync issue

This PR avoids dropping milestone requests when synced.

+7 -7

0 comment

2 changed files

pr created time in a month

create barnchAlex6323/bee-p

branch : christian-fix-sync

created branch time in a month

PullRequestReviewEvent

push eventAlex6323/bee-p

Christian Poveda

commit sha 0ec35f1f07912ee3bb0173ca3367a7f5840a418e

fix topological sorting

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha aed83e0d84b92e7537b626cad8de7cc5c8283d8a

add monotypes to LIR

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha cf22ce07821a87abb607c30e12d76da5d4c3a120

make code null terminated and document panics

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha 54da26af350c42edc9ba3b82b6c548bc0a96ade5

keep code in a single chunk

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha cc6895c45634854baca9c562a8816603ba68ce09

add labels for functions

view details

Christian Poveda

commit sha 84572913a869dcbce4e24e80c2fce146d083dc02

move dissasembly of bytecode to main

view details

Christian Poveda

commit sha d258d47affedfffa1126790cb9051628f71e8890

simplify code generation logic

view details

push time in a month

issue openedchristianpoveda/pijama

Clean unhandled errors

There are a lot of unwraps and panics that need to be either documented or removed. This issue tracks the progress done in each one of the crates

  • [ ] pijama_runtime
  • [ ] pijama_codegen
  • [ ] pijama_lir
  • [ ] pijama_mir
  • [ ] pijama_hir
  • [ ] pijama_tycheck
  • [ ] pijama_ast
  • [ ] pijama_common
  • [ ] pijama_parser

created time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha 3df88e404e854c6aea4d382ad67732f580fde30e

prepend to heap instead

view details

push time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha e15bd2e444a53999666a7267ee63bf53c33eb290

do topological sorting

view details

push time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha be01c21e21d7b26276a956b404e9b38af02f4ec1

use ids instead of names

view details

push time in a month

create barnchAlex6323/bee-p

branch : christian-rwlockmap

created branch time in a month

create barnchAlex6323/bee-p

branch : christian-deadlock-mitigation

created branch time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha 522c5d7de54a4e6f0ec2c886e27675cdc25e6c92

request more than one milestone at a time

view details

Christian Poveda

commit sha 363d8e3fe48fa4b7f002e94e9ddf11092a23a1e9

log retried transactions with milestone index

view details

Christian Poveda

commit sha 5da5970ae4c0a497bda9ed7d863d59a4129a5a5b

filter requested transactions from traversal

view details

Christian Poveda

commit sha 98bb4a10b18027b77f516535decefad9e95998e5

tag requested milestones as such

view details

Christian Poveda

commit sha 9d066b82a642c5eae3266a85da714f0d5b45713b

allow the root in the traversal

view details

Christian Poveda

commit sha dadc970bfd454c1acfa0c647e16441c8dae93623

bring back the milestone solidifier

view details

Christian Poveda

commit sha c56aafc2f7bab6bb086a625afc1e746e13fc8d9e

try to trigger continued solidification

view details

Christian Poveda

commit sha 6b7342914e9b6507bbc7c28ce47095d2d16604ee

add logs

view details

Christian Poveda

commit sha 9376c055a8d1915367de38858569c8c1d129be8e

fix odd-by-one error

view details

Christian Poveda

commit sha 514401994774a8f89223d6c0a2ae1c5430332f29

try to simplify solidification logic

view details

Christian Poveda

commit sha be2f14130302270d6b973f534464f4fcf7b23a57

simplify loop

view details

Christian Poveda

commit sha 7c6c0a4365ef0162dc6e1887bc0ba0a734bf5eaf

move kickstart worker back to solidifier

view details

Christian Poveda

commit sha b4bcef75c023dd0dc7d422b2bbe0af40ce0877f3

use kickstart worker to start milestone solidifier

view details

Christian Poveda

commit sha 253b47ed3f5785c8ff998ab8f45e2f4d2d6f85f7

clean logs

view details

Christian Poveda

commit sha 893584f89829da498e607ae70e4fa2476797d613

formatting

view details

Christian Poveda

commit sha 5298bbe5e65d13ac5c3379934761fbf2d0292fdc

solidify more milestones

view details

Christian Poveda

commit sha 2f4875050eb3c038591b7b238e3d5f6cb40f3bb0

move propagator to solidifier module

view details

Christian Poveda

commit sha ed552b2ce5f1dd55e54d4aa9f6d80e87c5e385f4

update metadata

view details

Christian Poveda

commit sha f55cf94851e63e3a7c396a722ca7b741200abd08

tag trunk and branch of milestone as requested

view details

Christian Poveda

commit sha 6633eacf88e22af2df206e20edefd46a8e9ed07f

tag trunk and branch after traversing

view details

push time in a month

PR merged Alex6323/bee-p

Multiple milestone solidification

This PR allows solidifying more than one milestone at the same time by reintroducing a MilestoneSolidifierWorker which keeps count of the last solidification triggered and guarantees that milestones are solidified in the correct order. This improves TPS significantly, in some runs the node was able to keep 1000 TPS consistently. However, in most cases TPS are between 600 and 800.

+221 -105

0 comment

11 changed files

christianpoveda

pr closed time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha 9ac6b2fdc1dc65797a48f8f7101aa7d2c633cb42

address PR comments

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha 85139ac393d6a729c39b3091c4476b3b78468e26

ease time measurements

view details

Christian Poveda

commit sha ee6831d94f98e6bf224072725dc2a2462d6ccca4

add AST

view details

push time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha 5209b9be614f7befa73b152046188633746a9663

avoid holding references for too long

view details

push time in a month

push eventAlex6323/bee-p

push time in a month

create barnchAlex6323/bee-p

branch : christian-chashmap

created branch time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha a052ae9302374ce702f37813820bb2b179a76102

try chashmap

view details

push time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha d63c9aeb5496d76f3477c3572dbd437b9a953890

bring back removed code

view details

push time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha 2ab8070ff810920e63333f6a3441d65b8bc663c2

bring back removed code

view details

push time in a month

push eventAlex6323/bee-p

Christian Poveda

commit sha 404e45417719acf07a5b82d67dcec351f86c1610

bring back removed code

view details

push time in a month

push eventAlex6323/bee-p

bingyanglin

commit sha e9d004229d8acfc1965f45ebc27cbe598a8c3585

Fix pruning mod and align with the lastest gohornet

view details

bingyanglin

commit sha 3e3036c1591c2e66fbabbaf508ad681fa1ceb840

local_snapshot_metadata.index() -> tangle().get_snapshot_index()

view details

bingyanglin

commit sha 0452d7202d54b77ebec3203c2b1a89f3ff2da67d

Add entry_point_index in MsTangle

view details

bingyanglin

commit sha c01fee80a0c20bbc62bf395be49115d174f2ba44

Uncomment get/update entry_point_index in pruning mod

view details

bingyanglin

commit sha 4899a89065813a4c3c7dca923d2cef453643ebf2

Add clear_solid_entry_points in MsTangle

view details

bingyanglin

commit sha f919b5c990c2c66f959bdf10ee0208ea101f813e

Remove uncessary importings and comments in pruning mod

view details

Thibault Martinez

commit sha 5b304cc059d79e5acd82df3d0c7232c714a086ea

SnapshotMetadata

view details

Thibault Martinez

commit sha 97ce6ac2c5f8e2868c79fa5c9171f9397d9a836e

Create empty LS file

view details

Thibault Martinez

commit sha df259bad69ecf7bea34d436cc633503d186207da

Call database pruning

view details

Thibault Martinez

commit sha f175a97c5952e7c2599540ba1289e63634812e88

Typo

view details

Thibault Martinez

commit sha 39363ade922cb8f90a4b99adac66f7fce4e82aba

Refactor errors

view details

Thibault Martinez

commit sha 885b2b8ee953bb515a62ddbfbddafe05dadaef1d

LS file modules

view details

Thibault Martinez

commit sha d162e917bbbe1d5eb4c4da1dfbdf6730e2d7b083

Minimum pruning delay

view details

bingyanglin

commit sha 806aafccb014a7741f34c89f63168ae2d0771fa3

Remove uncessary error logs in pruning mod

view details

Thibault Martinez

commit sha ba73c82f9a7615e69aa7bb473e9fb05b15e5eb38

Warn log if delay is too low

view details

Thibault Martinez

commit sha a8fa7d87a915208120f64a425c6a3f2489c966a0

usize -> u32

view details

bingyanglin

commit sha 981e13274e0dce4e44c992a7a50a9be651878627

Remove unused pruning Error enum

view details

Thibault Martinez

commit sha 92b8b71a6856c481a5db77a0f3a9d61ef834cc6d

Minimum LS depth

view details

Thibault Martinez

commit sha 4992412af9859dc9fdf25134a496af0d6a278043

Remove sender worker (#232) * Experimental remove of sender worker * Clean * fmt * Move Sender from workers to helpers

view details

Christian Poveda

commit sha 522c5d7de54a4e6f0ec2c886e27675cdc25e6c92

request more than one milestone at a time

view details

push time in a month

Pull request review commentAlex6323/bee-p

add Worker trait

 pub(crate) use sender::SenderWorker; pub(crate) use status::StatusWorker; pub(crate) use tps::TpsWorker; pub(crate) use transaction::{HasherWorker, HasherWorkerEvent, ProcessorWorker};++use bee_common::worker::Error as WorkerError;++use async_trait::async_trait;+use futures::Stream;++#[async_trait]+pub(crate) trait Worker {+    type Event;++    type Receiver: Stream<Item = Self::Event>;++    async fn run(self, receiver: Self::Receiver) -> Result<(), WorkerError>;

@zesterer what should stop do? I think most (all?) workers just break the loop and write the Stopped log entry.

christianpoveda

comment created time in a month

PullRequestReviewEvent

push eventAlex6323/bee-p

Christian Poveda

commit sha 28f09120ea98e2b51ec1ed0291e4840da9b8fa16

have milestone count as a config option

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha 9dbef09d3f77ced3a73b490a72f91cb520f5e0c8

use boxed slices instead

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha 4be20475a5e9239e39cf575a54d8e725ad73cdc4

use boxed slices instead

view details

push time in a month

push eventchristianpoveda/pijama

Christian Poveda

commit sha 12c36fdce404bb217400c8bfa11d082c7981ca8f

add unit type

view details

push time in a month

push eventAlex6323/bee-p

Thibault Martinez

commit sha 08777dd2dbcf9b7841349e344fddb9b09bfc2fa2

Request if has data then if maybe has data

view details

Thibault Martinez

commit sha 8173e5600a5bf2da5713582c188b27f0fcbb1937

Banner module

view details

Thibault Martinez

commit sha 455b914429d4429e3e5953a638ef3da240dc5faa

On all tails helper (#235)

view details

bingyanglin

commit sha 687b245c031de1cbbf1d3a219515deffbfdbc787

Move solid_entry_points insertion inside closure

view details

bingyanglin

commit sha 49eee85aa3df25a1b792a2854d2433685e2101a7

Move is_solid_entry_point inside closure

view details

bingyanglin

commit sha c5716a8d2e67da7f56e17baec2b4bddef19797f2

Combine the checking condition for solid_entry_points

view details

Thibault Martinez

commit sha 84d764f76317ccd6b33e375fe99d69ca526f2331

Global snapshot module

view details

bingyanglin

commit sha 483e50d7ec2752675c619d443f93bba47b0a50d8

Use combinator instead of match in pruning, and add more comments

view details

Thibault Martinez

commit sha 2e67ed2dc697014990ce3140558b5e324e9b3196

Handle snapshot errors

view details

Thibault Martinez

commit sha 164099a05400bb4bf5065bff1a75987df04479a1

LedgerState iter method

view details

Thibault Martinez

commit sha 82445c5cffbc68d60ae61aa91bdf9a2c37a65663

Write LS

view details

Thibault Martinez

commit sha 88e4ef52f0f8106a573e1b62e93edb6e2aea1ecc

Shared constants

view details

Thibault Martinez

commit sha 814a6b3e678a0d610872bbe82435dfad19aee6f2

Check if pruning is enabled outside of method

view details

Thibault Martinez

commit sha ed16f145b638cb6f37bcb5741ae55ddb5c42759f

Fix weird find_tail_of_bundle

view details

Christian Poveda

commit sha 0548fe03b5a750e6b4a7a3c3999253e582cd0330

request more than one milestone at a time

view details

Christian Poveda

commit sha 3c31b297e94ac24c86696d784aa44d0993b377ae

log retried transactions with milestone index

view details

Christian Poveda

commit sha 100146b61afa340463173e392333ddf93563c8d3

filter requested transactions from traversal

view details

Christian Poveda

commit sha ce93b6e71fac344fd1bdaf081ec3cecac3e72656

tag requested milestones as such

view details

Christian Poveda

commit sha 4abf89c37ba1904fee5f41f6188b7a1f629870e8

allow the root in the traversal

view details

Christian Poveda

commit sha f1bcfbf5460c70db4b1c94126794ec70000fd034

bring back the milestone solidifier

view details

push time in a month

pull request commentAlex6323/bee-p

add Worker trait

@thibault-martinez maybe we could try the for_each_concurrent here?

christianpoveda

comment created time in a month

more