From 301db6a059503e5efc7d9d6079699c60b4433dfd Mon Sep 17 00:00:00 2001 From: Diogo <112647953+dsm-w3f@users.noreply.github.com> Date: Fri, 1 Mar 2024 15:02:23 -0300 Subject: [PATCH] Create polkadart_4_dsm-w3f.md --- evaluations/polkadart_4_dsm-w3f.md | 190 +++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 evaluations/polkadart_4_dsm-w3f.md diff --git a/evaluations/polkadart_4_dsm-w3f.md b/evaluations/polkadart_4_dsm-w3f.md new file mode 100644 index 000000000..5e8300341 --- /dev/null +++ b/evaluations/polkadart_4_dsm-w3f.md @@ -0,0 +1,190 @@ +# Evaluation + +- **Status:** In Progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/Polkadart.md +- **Milestone:** 4 +- **Kusama Identity:** Address +- **Previously successfully merged evaluation:** N/A + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | -------- | ---- |----------------- | +| 0a. | License | | [Apache 2.0](https://github.com/leonardocustodio/polkadart/blob/main/packages/sr25519/LICENSE) | | +| 0c. | Testing Guide | | [Example](https://github.com/leonardocustodio/polkadart/tree/main/examples) | Example isn't working. | +| 0d. | Docker | | [Docker](https://github.com/leonardocustodio/polkadart/blob/main/docker-compose.yml) | It seems to have a memory leak problem on the tests. | +| 4a. | sr25519 | | [sr25519](https://github.com/leonardocustodio/polkadart/tree/main/packages/sr25519) | Could you provide the explanation and the conclusion of the research? | +| 4b. | Ecdsa/Secp256k1 | | [ecdsa](https://github.com/leonardocustodio/polkadart/tree/main/packages/secp256k1_ecdsa) | | +| 4c. | Sign & Verify | | [Sign&Verify](https://github.com/leonardocustodio/polkadart/blob/main/packages/sr25519/example/example.dart) | | +| 4e. | Custom RPC | | [RPC](https://github.com/leonardocustodio/polkadart/blob/main/packages/polkadart/lib/provider.dart) | | +| 4f. | Custom Signed Extensions | | [SignedExtension](https://github.com/leonardocustodio/polkadart/blob/main/examples/bin/extrinsic_demo.dart) | Example isn't working. | +| 4g. | Multisig Account | | [MultiSig](https://github.com/leonardocustodio/polkadart/blob/main/packages/polkadart/example/multisig_example.dart) | Example isn't working. | +| 4h. | Tests | | [Tests](https://github.com/leonardocustodio/polkadart/tree/main/packages/sr25519/test) | It seems to have a memory leak problem on the tests. | +| 4i. | Pub.dev | | [Pub](https://pub.dev/publishers/polkadart.dev/packages) | | + +## Evaluation V1 + +### sr25519 and Sign & Verify + +The [application](https://github.com/w3f/Grants-Program/blob/master/applications/Polkadart.md#milestone-4-) especify a research to decide the best way to support sr25519. Could you provide the explanation and the conclusion of this research? + +The example provided to sr25519 and Sign & Verify worked. + +```dart +void main() { + final msg = utf8.encode('hello friends'); + final signingCtx = utf8.encode('example'); + + + final merlin.Transcript signingTranscript = + Sr25519.newSigningContext(signingCtx, msg); + + + final merlin.Transcript verifyTranscript = + Sr25519.newSigningContext(signingCtx, msg); + + + final keypair = Sr25519.generateKeyPair(); + + + final (priv, pub) = (keypair.secretKey, keypair.publicKey); + + + final Signature sig = priv.sign(signingTranscript); + + + final (ok, _) = pub.verify(sig, verifyTranscript); + + + assert(ok == true); + + + print(ok); +} +``` + +``` +user@localhost:~/Documents/test/demo$ dart run bin/demo.dart +true + +``` + +### Custom Signed Extensions + +I tried to run the example, but I received an error related to balance. + +``` +user@localhost:~/Documents/polkadart/examples$ dart run bin/extrinsic_demo.dart +Sr25519 Wallet: 5Cabw1zd5pK8CbuPFHQYX7Ac9BVSumfw5BkiNQajstFdYDJq +Ecdsa Wallet: 5Hft7aSusEA1vFX43VZFbKmxiiujRnP7RUk87B66VVzqbpyY +Destination: 5GP3LivcsffRZXZhJ6EMxe4kYXYdhs3aLjgHFz3Ap2iLxcSw +Block Number: 19775146 +Payload: 040400beecf0681cf7e50992bdd7016c956c2b667fcd69d6143b0daec416501758623700a502000080610f0018000000e143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423efc8ab83daa13ca693d71f69a02c229102986891fd16969f1e86a2e4dccef9e80 +Signature: e8a5ed2ff482106a8bf83ad2451605f897816d7da163bf2dda3ca9f84014502526d3a11a377d63c69e1306a761d62bacaa2b28c47c7340b6e1511042999b6680 +sr25519 wallet extrinsic: 2d02840016cd6ab0878d5078dd14fe714e87ea77e77583cec4cbb9d95f2f06db2a86df5f01e8a5ed2ff482106a8bf83ad2451605f897816d7da163bf2dda3ca9f84014502526d3a11a377d63c69e1306a761d62bacaa2b28c47c7340b6e1511042999b6680a5020000040400beecf0681cf7e50992bdd7016c956c2b667fcd69d6143b0daec416501758623700 +Payload: 040400beecf0681cf7e50992bdd7016c956c2b667fcd69d6143b0daec416501758623700a502000080610f0018000000e143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423efc8ab83daa13ca693d71f69a02c229102986891fd16969f1e86a2e4dccef9e80 +Signature: 20537461a72984f03a574024ac3ce78fdeca101e3375bff5c9987c62b41526bb6507eaf0c639b5b1bbd2f51bf297e1c462729ae540630aca9344c66e364085e200 +ecdsa wallet extrinsic: 31028400f80148e326bf3826758422b95c9806105ba5f82dbb210abafb1b2e8e249e620e0220537461a72984f03a574024ac3ce78fdeca101e3375bff5c9987c62b41526bb6507eaf0c639b5b1bbd2f51bf297e1c462729ae540630aca9344c66e364085e200a5020000040400beecf0681cf7e50992bdd7016c956c2b667fcd69d6143b0daec416501758623700 +Unhandled exception: +Exception: {code: 1010, message: Invalid Transaction, data: Inability to pay some fees (e.g. account balance too low)} +#0 AuthorApi.submitExtrinsic (package:polkadart/apis/author.dart:17:7) + +#1 main (file:///home/user/Documents/polkadart/examples/bin/extrinsic_demo.dart:115:18) + +``` + +With balance, I received two different errors: + +``` +ecdsa wallet extrinsic: 31028400f80148e326bf3826758422b95c9806105ba5f82dbb210abafb1b2e8e249e620e02fa51cc85e9e75bd606ca8f3356a6689eafcea1151b69a9eafbf2b0200be650dc43b335c16dc4e58c6c5041cc58413d9c277d0828fc18c1e2beda1243bc85bd7800b5030000040400beecf0681cf7e50992bdd7016c956c2b667fcd69d6143b0daec416501758623700 +Unhandled exception: +Exception: {code: 1010, message: Invalid Transaction, data: Transaction is outdated} +#0 AuthorApi.submitExtrinsic (package:polkadart/apis/author.dart:17:7) + +#1 main (file:///home/user/Documents/polkadart/examples/bin/extrinsic_demo.dart:115:18) + +``` + +``` +ecdsa wallet extrinsic: 31028400f80148e326bf3826758422b95c9806105ba5f82dbb210abafb1b2e8e249e620e02c383f561a6f66f423623d1e764fe76cc4d9d14b23d4d81cd2a997ce6a59937403da7ee39a750ca80433cd11304a31d745574a78739ce705a1f924ed724a5b8240015000000040400beecf0681cf7e50992bdd7016c956c2b667fcd69d6143b0daec416501758623700 +Unhandled exception: +Exception: {code: 1010, message: Invalid Transaction, data: Transaction has a bad signature} +#0 AuthorApi.submitExtrinsic (package:polkadart/apis/author.dart:17:7) + +#1 main (file:///home/user/Documents/polkadart/examples/bin/extrinsic_demo.dart:115:18) + +``` + +### Multisig Account + +In this example, I needed to add the package `polkadart_cli`. + +``` +user@localhost:~/Documents/polkadart/packages/polkadart$ dart run polkadart_cli:generate -v +Could not find package `polkadart_cli` or file `polkadart_cli:generate` +``` + +After that, I needed to add the 'polkadart' section. + +``` +user@localhost:~/Documents/polkadart/packages/polkadart$ dart run polkadart_cli:generate -v +Building package executable... (11.2s) +Built polkadart_cli:generate. +Unhandled exception: +ConfigException: Failed to extract config from the 'pubspec.yaml' file. +Can't find 'polkadart' section. +#0 new PubspecConfig.fromYAML (package:polkadart_cli/src/config/pubspec_config.dart:45:7) +#1 new PubspecConfig.fromPubspecFile (package:polkadart_cli/src/config/pubspec_config.dart:30:26) +#2 main (file:///home/user/.pub-cache/hosted/pub.dev/polkadart_cli-0.4.2/bin/generate.dart:52:32) +#3 _delayEntrypointInvocation. (dart:isolate-patch/isolate_patch.dart:295:33) +#4 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12) +``` + +After that, I received an error related to balance. + +``` +user@localhost:~/Documents/polkadart/packages/polkadart$ dart run example/multisig_example.dart +Unhandled exception: +Exception: {code: 1010, message: Invalid Transaction, data: Inability to pay some fees (e.g. account balance too low)} +#0 AuthorApi.submitExtrinsic (package:polkadart/apis/author.dart:17:7) + +#1 Multisig.submitExtrinsic (package:polkadart/multisig/multisig.dart:421:12) + +#2 Multisig._createAndSubmitPayload (package:polkadart/multisig/multisig.dart:128:24) + +#3 Multisig.createAndFundMultisig (package:polkadart/multisig/multisig.dart:26:7) + +#4 main (file:///home/user/Documents/polkadart/packages/polkadart/example/multisig_example.dart:26:28) + +``` + +I couldn't find the seed or the address to give some balance. Could you help me with that? + +### Tests + +I tried to run the tests using Docker. All tests passed until the tests in the package substrate_metadata killed the program. + +``` +polkadart-tests-1 | substrate_metadata: +polkadart-tests-1 | Killed +polkadart-tests-1 | +polkadart-tests-1 | +02:06 +13583: test/chains/kusama/spec_version_test.dart: Spec Versions Test init spec version file -------------------------------------------------------------------------------- +polkadart-tests-1 | +polkadart-tests-1 | $ melos exec +polkadart-tests-1 | └> dart test --coverage="coverage" +polkadart-tests-1 | └> FAILED (in 1 packages) +polkadart-tests-1 | └> substrate_metadata (with exit code 137) +polkadart-tests-1 | +polkadart-tests-1 | melos run test +polkadart-tests-1 | └> dart run melos exec --scope="${SCOPE:-*}" -c 1 --fail-fast -- 'dart test --coverage="coverage"' +polkadart-tests-1 | └> FAILED +polkadart-tests-1 | ScriptException: The script test failed to execute. +polkadart-tests-1 exited with code 1 +``` + +I ran again, monitoring the resources. When the substrate_metadata tests started, memory usage increased until use all the memory. I stopped the test because it had frozen my computer before. It seems to be a memory leak problem or do I need more memory to run these tests? + +![Captura de tela de 2024-03-01 08-59-04](https://github.com/dsm-w3f/Grant-Milestone-Delivery/assets/112647953/4313a5cf-65c2-483e-be8a-2fc3692b15bd) + +![Captura de tela de 2024-03-01 09-00-05](https://github.com/dsm-w3f/Grant-Milestone-Delivery/assets/112647953/0928dce3-9bb6-4e48-96b1-bc8efbe56a36) + +