Skip to content

Commit

Permalink
merge: develop (#24)
Browse files Browse the repository at this point in the history
* deps: clean dependendies and add check script (ArkEcosystem#450)

* Ignore eslint in scripts

* Use async calls

* Ignore tests

* Show testonly dependencies

* Calculate deps

* Add docs

* Implement methods on Package

* Cleanup

* Rename deps to imports

* Fix exceptions

* Pass method

* Go trough all packages

* Improve logs

* Rename file

* Remove old scripts

* Exit with 1 if failing

* Fix validator-set-vote-weighted

* Validator set static

* Fix validator

* Fix utils

* Fix transaction pool

* Fix test-framework

* Fix packages

* Add deps check

* style: resolve style guide violations

* Fix ci

* Fix api

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(bootstrap): compare stored genesis block with config (ArkEcosystem#451)

* Check stored commit

* Empty commit

* refactor(processor): log verification errors (ArkEcosystem#452)

* Remove console logs

* Remove forger errors

* Remove UnexpectedError

* Remove extra exceptions

* Add ValidatorExceptions

* Handler throws errors

* Improve logs

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* chore: change banner format to jpeg (ArkEcosystem#453)

* Add banner jpeg

* Remove png version

* Update readme

* release: 0.0.1-alpha.8 (ArkEcosystem#454)

* release: 0.0.1-alpha.8

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(validator-set-vote-weighted): active validators is subset of registered validators (ArkEcosystem#466)

* Mak method private

* Build validators

* Local variable

* Use for of loop

* Check active validators

* Fix tests

* fix(processor): `validatorVoteBalance` calculation (ArkEcosystem#467)

* Add pg:reset

* Decrease vote balance

* Include fee

* Remove unused line

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* chore: docker validator support (ArkEcosystem#468)

* release: 0.0.1-alpha.9 (ArkEcosystem#469)

* release: 0.0.1-alpha.9

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* chore: fix publish GitHub workflow (ArkEcosystem#470)

* Run on pull request

* No git checks

* set token

* Revert to original build conditions

---------

Co-authored-by: oXtxNt9U <[email protected]>

* refactor(transactions): move amount deduction into transaction handlers (ArkEcosystem#472)

* refactor transfer amount deduction

* cleanup

* update schema tests

* feat: add `env:paths:clear` commands (ArkEcosystem#473)

* Clear plugins & exports

* Clear data

* Remove variables

* Add paths to contracts

* Remove config paths

* Cache cache, log, temp

* Cleanup

* Add command to api

* Add clear all

* Fix case

* release: 0.0.1-alpha.10 (ArkEcosystem#474)

* release: 0.0.1-alpha.10

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(crypto-transaction-username-registration): limit one transaction by sender in pool (ArkEcosystem#475)

* Rename variable

* Fix text

* Check transaction already in the pool

* feat(validator): log loaded validators (ArkEcosystem#477)

* Inject

* Print method

* Print on bootstrap

* Rename method

* Execute after state check

* Improve text

* Log 0 validators

* Determine activa & standby

* Wallet to string

* chore: fix typo in transaction fee errors (ArkEcosystem#476)

* feat(state): implements `sizeOfIndex` on WalletRepository (ArkEcosystem#479)

* Add sizeOfIndex

* Add initial implementation

* Wallet repository clone

* Implement on wallet repo clone

* Add missing attribute

* FIx validator resignation

* release: 0.0.1-alpha.11 (ArkEcosystem#480)

* release: 0.0.1-alpha.11

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat: port to ES modules (ArkEcosystem#478)

* initial browser support

* add package link script

* port api-common

* port api-database

* port api-development

* port api-http

* port api-sync

* port api-transaction-pool

* port api

* port bootstrap

* port cli

* port configuration-generator

* port consensus

* port webhooks

* port validator

* port validator-set-vote-weighted

* port validator-set-static

* port validation

* port utils

* port transactions

* port transaction-pool

* port test-framework

* port state

* port serializer

* port proposer

* port processor

* port p2p

* port networking-ntp

* port networking-dns

* port logger-winston

* port logger-pino

* port kernel

* port fees

* port fees-static

* port fees-managed

* port fees-burn

* port database

* port crypto-worker

* port crypto-wif

* port crypto-validation

* port crypto-transaction

* port crypto-transaction-vote

* port crypto-transaction-validator-resignation

* port crypto-transaction-validator-registration

* port crypto-transaction-username-resignation

* port crypto-transaction-username-registration

* port crypto-transaction-transfer

* port crypto-transaction-multi-signature-registration

* port crypto-transaction-multi-payment

* port crypto-signature-schnorr

* port crypto-signature-schnorr-secp256k1

* port crypto-signature-ed25519

* port crypto-signature-ecdsa

* port crypto-signature-bls12-381

* port crypto-messages

* port crypto-key-pair-schnorr

* port crypto-key-pair-ed25519

* port crypto-key-pair-ecdsa

* port crypto-key-pair-bls12-381

* port crypto-hash-wasm

* port crypto-hash-noble

* port crypto-hash-bcrypto

* port crypto-consensus-bls12-381

* port crypto-config

* port crypto-commit

* port crypto-block

* port crypto-address-ss58

* port crypto-address-keccak256

* port crypto-address-bech32m

* port crypto-address-bech32

* port crypto-address-base58

* port core

* port contracts

* port container

* update tsconfig to nodenext

* fix kleur/color

* update core/bin/run.js

* command fixes

* lmdb import fixes

* p2p fixes

* ajv fix

* get __dirname

* update pnpm-lock.yaml

* remove unused @pm2/io dependency

* replace fileURLToPath

* use filesystem service inside kernel

* cleanup

* update TypeScript to 5.4.2

* move __dirname into local scope

* replace fast-memoize with memoizee

* test-runner packacge

* re-export test-runner

* tests: utils

* tests: validation

* tests: crypto-config

* tests: container

* tests: kernel

* tests: transactions

* style: resolve style guide violations

* fix more tests

* fix transaction dependency lookup

* fix p2p tests

* more fixes

* fix cli and configuration-generator

* cli fixes

* kernel fixes

* transaction-pool

* all pass

* commit dirty

* style: resolve style guide violations

* fix api-http integration tests

* fix deps:check

* runtime fixes

---------

Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: sebastijankuzner <[email protected]>

* fix(api): broken entrypoint (ArkEcosystem#481)

* fix api entrypoint

* fix more commands

* refactor(transaction-pool): return tx indexes as integers (ArkEcosystem#483)

* return tx indexes as integers

* fix compile error

* chore: update dependencies (ArkEcosystem#482)

* update dependencies

* Empyt commit

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix wallet response (ArkEcosystem#485)

* fix(configuration-generator): create genesis block script (ArkEcosystem#484)

* fix create genesis block script

* Empty commit

---------

Co-authored-by: sebastijankuzner <[email protected]>

* refactor(core): rename run script to have explicit file extension (ArkEcosystem#486)

* ensure run script has explicit file extension

fixes ERR_UNKNOWN_FILE_EXTENSION

* empty commit

* fix: use .js extension in `start` commands (ArkEcosystem#487)

* Fix start commands

* Fix package.json

* Fix tests

* release: 0.0.1-alpha.12 (ArkEcosystem#488)

* release: 0.0.1-alpha.12

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(core): resolve correct plugin `package.json` path (ArkEcosystem#489)

* Fix package manifest

* Skip tests

* release: 0.0.1-alpha.13 (ArkEcosystem#490)

* release: 0.0.1-alpha.13

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(cli): determine correct entrypoint paths (ArkEcosystem#491)

* Add setup class

* Fix setup

* Bind

* Fixes

* Use setup paths

* Use in api

* Remove logs

* Fix tests

* Cleanup tests

* fix(test-framework): list project packages in dependencies (ArkEcosystem#492)

* Use direct dependencies

* Empty commit

* Fix dependencies

* Fix dependencies

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* exclude genesis transactions from fee statistics calculation (ArkEcosystem#494)

* fix(crypto): manage static fees via milestones (ArkEcosystem#493)

* add static fees to milestones

* update tests

* style: resolve style guide violations

* initialize static fees only in a single place

---------

Co-authored-by: oXtxNt9U <[email protected]>

* fix(api): sync active milestones on change (ArkEcosystem#495)

* sync active milestones on change

* fix test

* fix(api-http): add missing fields to transaction resource (ArkEcosystem#496)

* improve error logging

* populate all transaction fields

* review

* remove type cast

* add comment

* simplify more

* rename block model too and add assert

* fix paths according to the latest paths naming convention (ArkEcosystem#497)

* refactor(p2p): replace ip with `url` in api nodes (ArkEcosystem#498)

* api node urls

* update protobuf definitions

* update test fixtures

* cleanup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* fix(transaction-pool): invalid tx error reporting (ArkEcosystem#500)

* fix tx pool error reporting

* empty commit

* test: use `tsx` TypeScript loader (ArkEcosystem#499)

* Add tsx

* Fix runner

* Fix test-runner scripts

* Update tsconfig

* Fix tests

* Use test config

* Fix api tests

* api-common

* Api-database

* api-development

* api-http

* api-sync

* api-transaction-pool

* bootstrap

* cli partial

* Fix cli tests

* Runner extends contracts

* Configuration generator

* Consensus

* Container

* Contracts

* Core

* Crypto address

* Crypto block

* Cypto commit

* Crypto config

* Crypto

* Crypto messages

* Crypto signature

* Crypto transaction

* Crypto

* Database

* Fees

* Kernel

* Logger pino

* Logger winston

* Networking

* Server

* Processor, proposer, serializer

* State

* Transaction pool

* Transactions

* Utils

* Validation

* Validator

* Validator set

* Webhooks

* Remove tsm

* Fix integration tests

* Update lint CI

* Fix dependencies

* Prettier

* Lint

* Perttier

* style: resolve style guide violations

* refactor: remove `__dirname` usage (ArkEcosystem#501)

* Remove __dirname

* Fix tests

* Factory require config

* test(functional/consensus): add skeleton for functional tests (ArkEcosystem#503)

* Prepare base structure

* Add test runner

* Base test

* Add base packages

* Register base packages

* Add config

* Add pacakges

* Export bootstrap

* Export individual bootstrappers

* Register bootstrappers

* Extract bootstrapper itnerface

* Test

* Use tsm

* Pass url to PluginManifest

* Register service provider

* Setup up to validator package

* Register all necessary packages

* Add missing packages

* Boot

* Register transactions

* Process genesis

* Run consensus

* Add worker

* Fix worker

* Fix broadcaster

* refactor(consensus-storage): extract storage logic into package (ArkEcosystem#502)

* Add consensus storage package

* Prepare service provider

* Remove storage from consensus

* Add dependencies

* Move root into consensus storage

* Rename identifier

* Fix identifiers

* Edit contracts

* Fix deps

* Update packages/consensus-storage/README.md

Co-authored-by: oXtxNt9U <[email protected]>

---------

Co-authored-by: oXtxNt9U <[email protected]>

* milestone generator add static fees (ArkEcosystem#504)

* test(functional/transaction-pool-api): initial boilerplate and tests (ArkEcosystem#505)

* update gitignore

* add tx pool api boilerplate and basic broadcast

* add signWithKeyPair to tx builder

* update functional consensus milestones

* wait for block and assert committed transaction

* invalid transfer test

* assert invalid transactions are not committed

* test with invalid / malformed signature

* fix(test-runner): rethrow error in runHook (ArkEcosystem#506)

* bubble up error thrown in runHook

* Empty

---------

Co-authored-by: sebastijankuzner <[email protected]>

* refactor(database): return commits instead blocks (ArkEcosystem#507)

* getBlock to getCommit

* Fix tests

* getLastBlock -> getLastCommit

* Fix tests

* Implement isEmpty

* Fix tests

* feat(transaction-pool): support `in-memory` database (ArkEcosystem#510)

* Support im memory database

* Deps

* Test

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* test(functional/consensus): prepare package replacements, asserts and p2p layer (ArkEcosystem#508)

* Bind consensus storage

* Mock database

* Add contracts

* Use relative paths

* Prepare 2 setups

* Run 2 nodes

* Make log protected

* Make MemoryLogger fields protected

* Prepare custom logger

* Prepare p2p layer

* Fix p2p

* MemoryDatabase

* Load crypto

* Read validators

* Prepare validators

* Use common config

* Add snooze for one block

* Stop node

* Snooze for block

* Prepare smaller config

* Asserts

* Fix and check TS code

* Add script for check & test

* Use strict true

* Support plugin options

* Assert validators

* refactor(kernel): create bootstraper for shutdown signals  (ArkEcosystem#511)

* Register error handler first

* Move listen to shutdown signals into bootstrapper

* test(functional/transaction-pool-api): test all transaction types (ArkEcosystem#509)

* missing dependency

* transfer

* vote

* username-registration

* username-resignation

* validator-registration

* validator-resignation

* multipayment

* fix default payload

* update utils

* multi signature test plus fixes

* fix compile error

* test transfer with multisig

* rename tests for clarity

* add wallets to context

* tsc strict

* add snapshot based balance checks

* reduce block time

* review

* test(functional/transaction-pool): increase vote coverage (ArkEcosystem#512)

* votes

* empty commit

* test switch vote and unvote for non voted validator

* test(functional/transaction-pool): increase validator registration coverage (ArkEcosystem#513)

* votes

* empty commit

* validator registration

* empty commit

* test(functional/transaction-pool): increase validator resignation coverage (ArkEcosystem#514)

* votes

* empty commit

* validator resignation

* empty commit

* test(functional/transaction-pool): increase username registration coverage (ArkEcosystem#515)

* votes

* empty commit

* username registration

* empty commit

* test(functional/transaction-pool): increase username resignation coverage (ArkEcosystem#516)

* votes

* empty commit

* username resignation

* empty commit

* fix(kernel): minority and majority calculation (ArkEcosystem#520)

* Fix majority, minority

* Tests

* Add extra tests

* fix(api-http): allow 0 nonce in schema (ArkEcosystem#521)

* Allow nonce 0

* Empty commit

* fix(api-http): implement missing `/transaction/fees` route (ArkEcosystem#523)

* implement missing route /transaction/fees

* add test

* style: resolve style guide violations

* remove unused query param

---------

Co-authored-by: oXtxNt9U <[email protected]>

* test(functional/transaction-pool): increase multi sig registration coverage  (ArkEcosystem#517)

* more multi signature tests

* empty commit

* update min participants

* test missing participant signature

* test(functional/transaction-pool): add more misc coverage  (ArkEcosystem#518)

* more multi signature tests

* empty commit

* add misc tests

* empty commit

* release: 0.0.1-alpha.14 (ArkEcosystem#522)

* release: 0.0.1-alpha.14

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(consensus): emit events (ArkEcosystem#524)

* Add bootstrapped

* New round

* Add events

* Dispatch events

* Fix tests

* test(functional/transaction-pool): extract transaction builders into separate package (ArkEcosystem#525)

* introduce test-transaction-builders package

* use test transactions package

* include type when logging rejected tx

* style: resolve style guide violations

* fix deps:check

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* test(functional/consensus): test proposal scenarios (ArkEcosystem#526)

* Add initial test

* Rename base test

* Optional blockId

* Full test

* Bind custom proposer selector

* Check generatorPublic key

* Make consensus methods protected

* Expose boot and bootstrap methods

* Skip error handler registration

* Make consensus methods public

* Assert blockRound

* Implement *Many helpers

* Fix base test

* Force async to p2p

* Test missing propose

* Simulate double propose

* Simulate 50:50 split

* Remove assertCommitValidators

* Record messages

* Asserts

* majority minority split

* SnozeForBlock with height

* Assert next block is fine

* Check multiple rounds

* Check invalid proposer

* Add CI for functional

* Rename tests to proposal

* Rename tests

* fix(api-http): delegate search (ArkEcosystem#527)

* Fix delegate search in API

* Initial support for sorting on jsonb fields

* Update tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* refactor(p2p): log route on codec error (ArkEcosystem#528)

* Log error

* Allow empty

* test(functional/transaction-pool): add .gitkeep (ArkEcosystem#530)

* add .gitkeep

* empty commit

* test(functional/consensus): test prevote & precommit scenarios (ArkEcosystem#529)

* Check minority not prevoting

* Test null prevotes

* Extract methods to utils

* Check random block

* Check with multiple prevotes

* Lint

* Fix ts errors

* Disable unicorn/no-useless-undefined

* Check missing precommits

* Test precommits

* Check multiple messages

* fix(configuration-generator): update export paths (ArkEcosystem#531)

* Update paths

* Empty

* feat(api-development): add `peers/banned` endpoint (ArkEcosystem#532)

* Disposer returns list of banned peers

* Add endpoint

* Add pagiantion

* Format timeout

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* test(functional): update ci workflow (ArkEcosystem#534)

* run all functional tests in ci

* test

* style: resolve style guide violations

* test

* revert me

* style: resolve style guide violations

* include matrix name

* revert trigger

---------

Co-authored-by: oXtxNt9U <[email protected]>

* test(functional/consensus): test rejection of invalid block proposals (ArkEcosystem#533)

* custom funded wallet provider

* REVERT ME: debug logs

* export Proposer

* custom block proposal

* emit event on invalid block

* add assertInvalidBlock

* extract custom proposal function

* ensure wallet exists on each node

* invalid proposals

* seed with randomBytes

* log error instance on mismatch

* lint

* Revert "REVERT ME: debug logs"

This reverts commit defdf7e.

* deps: update lmdb (ArkEcosystem#535)

* Update lmdb

* Log if commit cannot be read

* Await transaction flushed

* Await flush

* test(functional): fix `MaxListenersExceeded` warning (ArkEcosystem#537)

* fix MaxListenersExceededWarning

* empty commit

* feat(api-http): support sorting on jsonb attributes (ArkEcosystem#538)

* support sort on wallet attributes

* NULLS LAST

* tests

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* fix(p2p): peer ban and validate ip plugin (ArkEcosystem#539)

* Skip header check if peer is not in repo

* Validate peer ip

* Remove repo check

* Validate ip and data separately

* Fix test

* Update default peer ban time

* feat(cli): add --overwrite flag to `config:publish:custom` (ArkEcosystem#536)

* expose `skip` callback

* update publish:custom command

* style: resolve style guide violations

* Make fields optional

* Require flags error

---------

Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: sebastijankuzner <[email protected]>

* feat(crypto): add browser support for bls12-381 packages (ArkEcosystem#540)

* add bls12-381 browser support

* update test

* style: resolve style guide violations

* dep check exception

---------

Co-authored-by: oXtxNt9U <[email protected]>

* release: 0.0.1-alpha.15 (ArkEcosystem#542)

* release: 0.0.1-alpha.15

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(p2p): postTransactions response schema and proto (ArkEcosystem#543)

* Update proto

* Build proto

* Fix schema

* Fix tests

* refactor(api): show `meta` field in response at top (ArkEcosystem#545)

* show `meta` field in response at top

* style: resolve style guide violations

* eslint: disable key sort

---------

Co-authored-by: oXtxNt9U <[email protected]>

* fix(api-http): change default sort for `/delegates` (ArkEcosystem#544)

* sort /delegates by rank by default

* empty commit

* refactor(block-processor): log commit round (ArkEcosystem#546)

* Log block round

* Empty commit

* perf(consensus): verify proposal signatures on main thread (ArkEcosystem#548)

* Verify signature on main thread

* Empty commit

* refactor(contracts): remove Consensus prefix from contracts (ArkEcosystem#549)

* Rename contracts

* Empty commit

* refactor(consensus): remove hasValidBlockGenerator check (ArkEcosystem#550)

* Remove hasValidBlockGenerator check

* Empty commit

* fix(api-http): sort delegates by rank asc by default (ArkEcosystem#552)

* sort delegates by rank asc by default

* empty commit

* test(e2e): add e2e tests and workflow (ArkEcosystem#547)

* network with 3 nodes

* add check for target block height

* workflow

* revert me

* exclude e2e directory

* style: resolve style guide violations

* docker fixes

* test

* add timeout

* test

* wait for checks to finish

* run detached

* show logs

* style: resolve style guide violations

* increase sleep

* increase target height

* revert trigger condition

* revert changes to defaults

* style: resolve style guide violations

* reply with 200

* Update tests/e2e/consensus/checks/index.mjs

Co-authored-by: Sebastijan K. <[email protected]>

* reduce timeout for now

---------

Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: Sebastijan K. <[email protected]>

* release: 0.0.1-alpha.16 (ArkEcosystem#553)

* release: 0.0.1-alpha.16

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(validator): support secret encryption (ArkEcosystem#554)

* remove skipValidation flag

* write validator keystore

* support validator with encrypted passphrase

* update commands

* update tests

* optional keystore

* style: resolve style guide violations

* support --password

* review

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* perf: deserialize proposal in steps (ArkEcosystem#551)

* Rename ProposedBlock to ProposedData

* Remove ProposedBlockJson

* Rename proposal.block to proposal.data

* Fix consensus tests

* Fix crypto-message tests

* Add getData and isDataDeserialized

* Fix consensus tests

* Test proposal

* Rename method

* Make makeProposedDataFromBytes public

* Make proposal injectable

* Fix tests

* Add deserialize to proposal

* Check status before returning data

* Include deserializer

* Fix tests

* Pass only serialized data to proposal

* Deserialize in proposal processor

* Deserialize in handler

* Remove todo

* Fix tests

* Fix header

* Verify lock proof after deserialization

* Fix functional tests

* Fix proposal types

* Fix proposal creation

* perf(consensus): run pending RoundStates only once (ArkEcosystem#555)

* Set pending jobs

* Remove key

* Reduce complexity

* fix: dispatch block events with expected payload (ArkEcosystem#558)

* dispatch BlockEvent.Forged again

* dispatch only block instead of whole commit

* fix

* test

* update e2e check

* chore: upgrade pnpm v9 (ArkEcosystem#556)

* upgrade pnpm v9

* empty commit

* support webhook condition on nested key (ArkEcosystem#557)

* improve stability (ArkEcosystem#564)

* fix(webhooks): restore webhooks on boot (ArkEcosystem#562)

* restore webhooks on boot

* skip events during bootstrap

* skip all but kernel events

* style: resolve style guide violations

* review

---------

Co-authored-by: oXtxNt9U <[email protected]>

* chore(ci): add workflow to enforce minimum commit count (ArkEcosystem#565)

* check minimum commit count

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <[email protected]>

* release: 0.0.1-alpha.17 (ArkEcosystem#566)

* release: 0.0.1-alpha.17

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(api-sync): upsert version on bootstrap (ArkEcosystem#567)

* upsert version on bootstrap

* empty commit

* feat: add `blockPrepareTime` to milestones (ArkEcosystem#568)

* Add blockPrepareTime

* Nest

* Scheduler

* Sync

* Fix generator

* Test config generator

* Test crypto config

* Fix scheduler

* Add test

* Fix functional tests

* stageTime to stageTimeout

* Fix api-http tests

* refactor(api-sync): add `syncInterval` option (ArkEcosystem#569)

* Implement getSyncIntervalMs on abstractListener

* Add syncInterval defaults

* Use configuration

* fix(api-sync): process transactions in chunks to support very large blocks (ArkEcosystem#572)

* sync transactions in chunks

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* refactor(consensus): prepare block after commit (ArkEcosystem#571)

* Log on round start

* Propose after commit

* Use timestamp

* Rename methods

* Fix tests

* Rename method

* Fix tests

* Deps

* Fix consensus tests

* Fix tests

* Update packages/validator/source/validator.ts

Co-authored-by: oXtxNt9U <[email protected]>

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: sebastijankuzner <[email protected]>

* refactor(consensus):  dispatch *any events only once per round (ArkEcosystem#574)

* Return scheduler status

* Test scheduler

* Skip multiple dispatches

* Tests

* fix(api-http): support query criteria based on wallet attributes (ArkEcosystem#573)

* wallet attributes criteria

* delegate attributes criteria

* return BadRequest if request results in invalid query

* test for attribute query

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <[email protected]>

* feat(api-http): query round by number (ArkEcosystem#591)

* fix 0 vote balance

* add round parameter

* update tests

* rename route

* feat(crypto-transaction-validator-registration): accept registration from multisig wallet (ArkEcosystem#593)

* remove check

* add tests

* cleanup obsolete exception class

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* feat(api-http): expose validator round votes (ArkEcosystem#598)

* add column

* sync round votes

* return votes from controller

* update test

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* release: 0.0.1 alpha.18 (ArkEcosystem#599)

* release: 0.0.1-alpha.18

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(api-sync): make bootstrap less verbose (ArkEcosystem#600)

* reduce verbosity of bootstrap

* empty commit

* feat: run transaction-pool in worker thread (ArkEcosystem#610)

* refactor(transaction-pool-service): rename package (ArkEcosystem#575)

* Rename package

* Empty commit

* Fix deeps check

* Fix p2p tests

* Fix e2e tests

* Fix workflow

* feat(transaction-pool): create CLI package (ArkEcosystem#576)

* Clone API package

* Use mainsail-tx-pool process name

* Neutral tests names

* Rename api: to tx-pool:

* Rename commands

* Scripts

* Deps

* Generate unit workflow

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(api-common): add JSON-RPC support (ArkEcosystem#577)

* Bind rpc processor

* Extract RPC contracts

* Add getRPCProcessor

* Validate schema

* Fix validation

* Add method

* Add call action

* Register action

* Handle methodNotFound

* Validate params & handler error

* Move plugin

* Use common utils

* Remove console.logs

* Extract prepareRpcError handler

* Fix imports and deps

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(api-common): use AJV for JSON_RPC schema validation (ArkEcosystem#580)

* Add ajv

* Add schema

* Export validation

* Add Validator.hasSchema

* Register schema

* Fix schema

* Verify payload

* Use ajv

* style: resolve style guide violations

* Fix deps

* Fix api-http tests

---------

Co-authored-by: sebastijankuzner <[email protected]>

* refactor(p2p): remove `postTransactions` route (ArkEcosystem#581)

* Remove postTransactions route

* Remove postTransactions

* Remove post transactions utils

* Remove broadcaster

* Rebuild proto

* Fix p2p tests

* Fix tests

* feat: implement `transaction-pool-server` & `transaction-pool-client` packages (ArkEcosystem#583)

* Add packages & crypto

* Add transaction pool api

* Add deps

* Add transaction pool server

* Add defaults

* Test controller

* Boot server

* Add client package

* Register client

* Add contract

* Register action

* Add base handler

* Remove test transactions

* Client getTx

* Replace TX pool service with client

* Fix schema validation

* Remove transactions from api-development

* Remove from bootstrapper

* Remove from processor and validator

* Remove api-transaction-pool from core

* Use optional query on TX

* Log errors

* style: resolve style guide violations

* Fix validator tests

* Fix consensus tests

* Temporary disable transaction-pool-api tests

* Update e2e app.json

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(state): supports state sync using delta changes (ArkEcosystem#584)

* Implement changesToJson

* Register onCommit

* Add address

* Add changesToJson on WalletRepository

* Return indexes

* Store to json

* Add interface

* Add commit action

* Apply changes to repostiory

* Apply wallet changes

* Apply changes

* Set and forget attributes

* Skip unknown attributes

* Errors

* style: resolve style guide violations

* Fix tests

* Fix

* Comment

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(transaction-pool-api): add transactions endpoints (ArkEcosystem#585)

* Rename route

* /unconfirmed

* /unconfirmed/{id}

* /types

* /unconfirmed

* Remove unused tag

* feat(transaction-pool): implement `get_transactions` action (ArkEcosystem#586)

* Collate transactions

* Set config height

* Transaction bytes return buffer

* Move transaction validator

* Validate transactions

* Add crypto block

* Simplify validator

* Test get transactions

* Remove collator

* Rename identifiers

* Rename contract

* Set failed transactions

* style: resolve style guide violations

* Empty commit

* Fix tests

* Fix consensus tests

---------

Co-authored-by: sebastijankuzner <[email protected]>

* refactor(crypto-transaction): make `id` mandatory (ArkEcosystem#587)

* Make id mandatory

* Make id mandatory

* Make type group mandatory

* Make network mandatory

* feat(transaction-pool): sync block and transactions (ArkEcosystem#588)

* Post failed transactions

* Commit block

* Increase payload size

* Reset failed transactions

* Set last block

* feat(transaction-pool): list & import snapshots (ArkEcosystem#589)

* Export state

* Add snapshot service

* Add action

* list snapshots

* Add import snapshot

* Call import snapshot

* Rename field

* Export from snapshot service

* Extract paths

* Use async fs methods

* Add remove snapshots

* List snapshots as promise

* Use list snapshots

* Implement import

* File changes

* Fix restore snapshots

* Restore snapshots

* Handle import snapshot

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* feat(state): add `skipUnknownAttributes` option to StateRepository (ArkEcosystem#592)

* Log errors

* Fix error messages

* Allow unknown attributes

* Make wallet injectable

* Inject attribute repository

* Rename repository to state repository

* StateRepositoryFactory

* Rename defaults

* Read from defaults

* Add to options

* Extract stateRepositoryFactory

* Fix wallet factory

* fix tests

* Fix tests

* feat(transaction-pool): implement `get_status` JSON_RCP endpoint (ArkEcosystem#595)

* Implement get status

* Log status

* Endpoint returns data

* Disable e2e

* feat(transaction-pool): add  request and response schemas for JSON_RPC actions (ArkEcosystem#596)

* Add commit interfaces

* Add commit schema

* Get Status contracts

* GetTransactions contracts

* ImportSnapshot contracts

* ListSnapshots contracts

* Validate response

* Validate JsonRPC response

* Move schemas to common

* refactor(state): recreate state on snapshot restore (ArkEcosystem#597)

* Recreate base store

* Fix bootstrapper

* refactor(kernel): replace child processes with worker threads (ArkEcosystem#601)

* Use workers

* Limit crypto worker count

* Remove signal for shutdown

* feat(transaction-pool): run transaction pool in worker thread (ArkEcosystem#602)

* Remove transaction-pool

* Add tx pool plugins

* Add core and tx-pool entries

* Load core

* Set thread name

* Add thread name

* Load crypto worker

* Remove requiredByWorker

* Clone

* Cleanup

* Extract contracts

* Update contracts

* Determine if is worker

* Extract worker package

* Register package

* Update contracts

* Fix bindings

* Boot

* Fix

* Add app.json

* Fix app

* Fix functional tests

* CI Unit

* Remove workerLoggingEnabled

* fix(transaction-pool-worker): update local module import workaround (ArkEcosystem#605)

* fix workaround for local module import with custom launch config

* remove try catch

* refactor(transaction-pool): disable snapshot export (ArkEcosystem#604)

* TxPoolClient is mandatory

* Check snapshots enabled

* Fix factory

* refactor(transaction-pool-worker): implement IPC actions (ArkEcosystem#606)

* Import snapshot

* Improve handler

* Implement commit

* Fix contract

* Extract commit handler

* Implement get transactions

* Extract import snapshot

* Remove server client packages

* Remove client instances

* Remove workerPool

* Remove old contracts

* Fix tests

* Regenerate unit CI

* chore: merge develop to tx-pool (ArkEcosystem#607)

* fix(api-http): support query criteria based on wallet attributes (ArkEcosystem#573)

* wallet attributes criteria

* delegate attributes criteria

* return BadRequest if request results in invalid query

* test for attribute query

* style: resolve style guide violations

* rename

---------

Co-authored-by: oXtxNt9U <[email protected]>

* feat(api-http): query round by number (ArkEcosystem#591)

* fix 0 vote balance

* add round parameter

* update tests

* rename route

* feat(crypto-transaction-validator-registration): accept registration from multisig wallet (ArkEcosystem#593)

* remove check

* add tests

* cleanup obsolete exception class

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* feat(api-http): expose validator round votes (ArkEcosystem#598)

* add column

* sync round votes

* return votes from controller

* update test

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* release: 0.0.1 alpha.18 (ArkEcosystem#599)

* release: 0.0.1-alpha.18

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(api-sync): make bootstrap less verbose (ArkEcosystem#600)

* reduce verbosity of bootstrap

* empty commit

* Increase version

---------

Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: sebastijankuzner <[email protected]>

* test(functional): fix transaction-pool-api tests (ArkEcosystem#609)

* Add custom pool worker

* Empty

* Enable tests

* test(ci): fix e2e tests (ArkEcosystem#608)

* Enable E2E tests

* Empty commit

* Update app.json

* Fix

* enable hapi debug logs

* fix invalid config lookup

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: oXtxNt9U <[email protected]>

---------

Co-authored-by: sebastijankuzner <[email protected]>
Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: oXtxNt9U <[email protected]>

* feat(transaction-pool-broadcaster): implement node verification and broadcast (ArkEcosystem#612)

* Add package

* Add peer

* Add peer repository

* Add verifier

* Add peer processor

* Defaults

* Bind identifiers

* Add broadcaster

* Skip verification

* Extract api node

* Register services

* Add index

* Fix

* Register broadcaster

* Set peer action

* Forget peer

* Use in actions

* Broadcast

* Remove after errors

* Use defaults

* Add env variables

* Remove send action

* Support worker events

* Remove peer

* Remove pending peers, verifier and processor

* Verify tx pool node

* Remove log

* Read port from defaults

* Read from defaults

* Remove identifiers

* Fix unit tests

* Fix deps

* Fix functional tests

* Update e2e app.json

* style: resolve style guide violations

* Fix ts error

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(kernel): make crypto-worker and transaction-pool optional in app.json (ArkEcosystem#615)

* Make fields optional

* Add validation

* Add deps

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(consensus): await proposal creation and reduce thread blocking (ArkEcosystem#617)

* Set timeout before handle

* Make proposal promise

* Add timeouts

* fix(bootstrap): set processor result on commit state (ArkEcosystem#618)

* set processor result on bootstrap

* empty commit

* fix(bootstrap): set genesis block after restore (ArkEcosystem#623)

* Restore before genesis

* Empty commit

* skip restore if database is empty

---------

Co-authored-by: oXtxNt9U <[email protected]>

* perf(crypto-block): skip deserialization on make (ArkEcosystem#625)

* Skip deserialization on make

* Fix crypto-block tests

* Fix test framework

* Fix database tests

* refactor(p2p): increase timeouts (ArkEcosystem#624)

* Empty commit

* Increase timeouts

* feat(validator): time limit transaction collation (ArkEcosystem#620)

* Time limit

* Empty commit

* Add defaults

* Use default

* Fix tests

* Set block prepare time

* feat(logger-pino): log worker thread name (ArkEcosystem#627)

* Remove ignores

* Update pino

* Update pino pretty

* Update rotating-file-stream

* Remove pid

* Show thread name

* Fix tests

* feat(block-processor): check future blocks (ArkEcosystem#628)

* Add dayjs

* Verify future blocks

* Add tolerance milestone

* Use tolerance

* Fix tests

* style: resolve style guide violations

* Fix integration tests

---------

Co-authored-by: sebastijankuzner <[email protected]>

* refactor(transaction-pool-worker): remove extra logs (ArkEcosystem#629)

* Remove commit messages

* empty commit

* refactor(transaction-pool-service): readd transactions on boot and milestone change (ArkEcosystem#630)

* Skip export

* Cleanup after block

* Re add transactions on milestone change

* Remove handlers

* Add start handler

* Fix tests

* chore(ci): fix deprecation warning (ArkEcosystem#634)

* use latest actions

* update script

* feat(transaction-pool-service): re-add transactions on invalid states (ArkEcosystem#632)

* Remove revert on sender state

* Remove forged transactions method

* Add initial commit methods

* Remove forged transactions

* Implement commit

* Remove failed transactions

* Cleanup is private

* Implement reAddTransactions transactions

* Add remove transactions

* Make remove methods sync

* Rename method to fixInvalidStates

* Call fixInvalidStates

* Cleanup service

* Remove asserts

* Remove removeTransaction

* Move commit to service

* Use debug logs

* Skip tests

* style: resolve style guide violations

* Fix worker

---------

Co-authored-by: sebastijankuzner <[email protected]>

* refactor(contracts): move events to contracts (ArkEcosystem#635)

* Add events

* Move events under contracts

* Fix tests

* Fix tests

* Void floating promises

* Move webhook events

* Fix webhook tests

* refactor(transactions): inject EventDispatcher (ArkEcosystem#636)

* Remove emitter in parameter

* Fix tests

* test(e2e): run network with less validators (ArkEcosystem#638)

* update e2e network config

* add 2 more nodes

* style: resolve style guide violations

---------

Co-authored-by: oXtxNt9U <[email protected]>

* feat(webhooks): add support for workers (ArkEcosystem#637)

* Emit events

* Boot only on main thread

* Move interfaces

* Move identifiers

* Use database contract

* Add webhooks to transaction pool

* Fix tests

* Add handler

* Listen to events

* Fix tests

* refactor(state): increase default export interval (ArkEcosystem#642)

* Increase export interval

* Empty

* refactor(api-sync): remove obsolete mempool transaction sync (ArkEcosystem#644)

* remove mempool sync

* delete fixture

* release:  0.0.1-alpha.19 (ArkEcosystem#645)

* release:  0.0.1-alpha.19

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* deps(core): add api-transaction-pool (ArkEcosystem#646)

* Include api-transaction-pool

* Fix deps

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* release: 0.0.1-alpha.20 (ArkEcosystem#647)

* release: 0.0.1-alpha.20

* style: resolve style guide violations

---------

Co-authored-by: sebastijankuzner <[email protected]>

* fix(p2p): remove block header from getStatus  (ArkEcosystem#650)

* Rebuild proto

* Update get status

* Update controller

* Fix tests

* style: resolve style guide violations

* Update schema

* style: resolve style guide violations

* Reply schema required fields

---------

Co-authored-by: sebastijankuzner <[email protected]>

* test(e2e): fix docker-compose setup (ArkEcosystem#673)

* try fix ci

* empty commit

* fix

---------

Co-authored-by: sebastijankuzner <[email protected]>
Co-authored-by: Adrian Kerchev <[email protected]>
Co-authored-by: oXtxNt9U <[email protected]>
Co-authored-by: Edgar Goetzendorff <[email protected]>
Co-authored-by: oXtxNt9U <[email protected]>
  • Loading branch information
6 people authored Sep 17, 2024
1 parent a226590 commit 16af53d
Show file tree
Hide file tree
Showing 20 changed files with 157 additions and 136 deletions.
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,5 @@ tags
# Unit test artifacts
:memory:

# Rust
target

# Functional
tests/functional/**/paths/data/**
!tests/functional/**/paths/data/.gitkeep
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export const makeTransactionRepository = (dataSource: RepositoryDataSource): Tra
// no days parameter, take the stats from each type for its last 20 txs
return this.manager.query<FeeStatistics[]>(
`
select t_outer.type_group as "typeGroup", t_outer.type as "type",
select t_outer.type_group as "typeGroup", t_outer.type as "type",
TRUNC(COALESCE(AVG(fee), 0)::numeric) AS "avg",
TRUNC(COALESCE(MIN(fee), 0)::numeric) AS "min",
TRUNC(COALESCE(MIN(fee), 0)::numeric) AS "max",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,4 +128,4 @@
"engines": {
"node": ">=20.x"
}
}
}
253 changes: 139 additions & 114 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node0/core/crypto.json
Original file line number Diff line number Diff line change
Expand Up @@ -436,4 +436,4 @@
"slip44": 1,
"wif": 186
}
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node0/core/validators.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"secrets": [
"canal scrub right record exhaust pluck document chase circle question apart yard eternal view nerve frost zone topple negative hat desk muffin cereal notable"
]
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node1/core/crypto.json
Original file line number Diff line number Diff line change
Expand Up @@ -436,4 +436,4 @@
"slip44": 1,
"wif": 186
}
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node1/core/validators.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"secrets": [
"parrot talent coach grab cool deal release endorse toward pledge switch chuckle solid fan erupt erase bind fetch arrow strike day absent addict purchase"
]
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node2/core/crypto.json
Original file line number Diff line number Diff line change
Expand Up @@ -436,4 +436,4 @@
"slip44": 1,
"wif": 186
}
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node2/core/validators.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"secrets": [
"beef hockey reduce shed car afraid build phrase rather stumble planet better version order rare ticket drip about all dial crouch february layer deer"
]
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node3/core/crypto.json
Original file line number Diff line number Diff line change
Expand Up @@ -436,4 +436,4 @@
"slip44": 1,
"wif": 186
}
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node3/core/validators.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"secrets": [
"puzzle inform today soft west erupt bring hen banana easily nice unlock puppy rocket digital bullet famous junior recycle grid dizzy clever dirt cry"
]
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node4/core/crypto.json
Original file line number Diff line number Diff line change
Expand Up @@ -436,4 +436,4 @@
"slip44": 1,
"wif": 186
}
}
}
2 changes: 1 addition & 1 deletion tests/e2e/consensus/nodes/node4/core/validators.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
"secrets": [
"ability seed subject speed gun maze file name parent palace curious famous impulse beef galaxy gas width aunt tide mansion fancy host image long"
]
}
}
2 changes: 1 addition & 1 deletion tests/functional/consensus/config/crypto.json
Original file line number Diff line number Diff line change
Expand Up @@ -436,4 +436,4 @@
"slip44": 1,
"wif": 186
}
}
}
2 changes: 1 addition & 1 deletion tests/functional/consensus/config/validators.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
"puzzle inform today soft west erupt bring hen banana easily nice unlock puppy rocket digital bullet famous junior recycle grid dizzy clever dirt cry",
"ability seed subject speed gun maze file name parent palace curious famous impulse beef galaxy gas width aunt tide mansion fancy host image long"
]
}
}
2 changes: 1 addition & 1 deletion tests/functional/consensus/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,4 @@
"engines": {
"node": ">=20.x"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3604,4 +3604,4 @@
"slip44": 1,
"wif": 186
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@
"publicKey": "032325b399c9a49fbc32624fb6e80e5599c5469eb5ab25430549d1d009cc297634"
},
"passphrase": "nephew news thing day index pond cover proud quick exchange toast ozone peasant tragic this acid message space mountain city never where cliff settle"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,4 @@
"area history empower elephant awake mystery liar culture polar marriage try barrel record tell manual strategy sausage scrap tissue thought width evidence valid blast",
"error odor away hire bird festival fringe egg bunker nominee smooth cruise better way lift pass trim kiss junior just forget spread luxury noodle"
]
}
}

0 comments on commit 16af53d

Please sign in to comment.