April is over, and along with it, our fourth month of development for 2019. We have prepared the ARK Monthly Development Report of our GitHub activity for it.
The ARK Monthly Development Report covers all pull requests (opened, closed, merged) as well as all issues opened and closed in every ARK Ecosystem public repository, the number of contributors during that month, the number of new star gazers, and total lines of lines of GitHub code added or deleted. This info is presented here in a concise one page blog.
Get involved with ARK development and participate in our bounty program: https://bounty.ark.io
You can track this weekly data directly on GitHub by opening the repository of interest, clicking on ‘issues’, and opening latest ‘Weekly report digest’.
Thanks to all who contribute each month and help out with development!
Here’s the Monthly Digest from Mon, Apr 1, 2019 12:00 AM to Tue, Apr 30, 2019 12:00 AM.
Throughout public repositories we had:
- 192,210 lines of code added.
- 179,958 lines of code deleted.
- 5,374 files changed.
Contributors
Last month there were 18 contributors.
air1one, alessiodf, alexbarnsley, dated, faustbrian, FloryanFilip, ItsANameToo, j-a-m-l, jamesbooker, Jarunik, kristjank, luciorubeens, marekhoeven, NayiemWillems, Nigui, sleepdefic1t, supaiku0, vasild
Thank you for your contributions! 🎉
Pull Requests
Last month we had 217 pull-requests. Of which:
- 12 Opened.
- 195 Merged.
- 10 Closed.
Opened
Last month, 12 pull-requests were opened.
— alexbarnsley
— faustbrian
— FloryanFilip
— j-a-m-l
- #1204 fix: do not close the custom peer modal when clicking inside it
- #1186 feat(plugins): add the plugins section to the main sidebar
- #1201 fix: display the wallet sidebar filters on the right position
- #1192 [WIP] fix(plugins): load menu routes correctly
- #1194 feat(plugins): allow addding custom themes
- #1191 feat(plugins): require permissions to include content on the app
- #1166 test: provide a way to manipulate the app when running end-to-end tests
— luciorubeens
Closed
Last month, 10 pull-requests were closed.
— alexbarnsley
— faustbrian
— Jarunik
— luciorubeens
— supaiku0
- #2463 fix(core-api): return senderPublicKey on v2 transaction endpoints
- #2485 Merge master into develop
— vasild
- #2494 refactor(core-transaction-pool): simplify by not using insertion order
- #2450 feat(core-transaction-pool): Switch expiration to chain height
Merged
Last month, 195 pull-requests were merged.
— air1one
- #2382 fix(core-p2p): avoid duplicate connections with the same peer
- #2361 refactor(core-forger): check all hosts for 1 second to find a match
- #2386 fix: forget peer connection on disconnect
- #2433 feat(core-p2p): parallel block download
- #2445 fix(core-p2p): disable rate limit for forger
- #2394 fix(crypto): validate address is on network
- #2368 test: fix core-p2p tests
- #2500 feat: batch block database inserts when syncing
- #2383 fix(core-p2p): set headers on peer instance
- #2468 test: integrate end-to-end testing into core (from core-e2e repo)
- #2449 fix(core-p2p): still download blocks when network height <= our height
- #2273 feat: websockets (socketcluster) for p2p communication
- #2430 refactor: block broadcast when block comes from forger
— alessiodf
— alexbarnsley
- #49 fix: remove unnecessary milestone option
- #46 fix: stop-core command required network parameter
- #1198 fix(plugins): avatar plugins not working correctly
- #1164 fix: improve validation for epoch format
- #45 refactor: set epoch in js script
- #47 refactor: postgres without sudo
- #1172 fix: other network fees when higher than ARK static fees
- #1195 feat: ensure plugins directory exists
- #1173 fix: add network modal validation
— dated
- #2469 chore: fix absolute banner urls
- #378 misc: add space before opening parens and capitalization
- #371 feat: add styles to details/summary
- #592 feat: remove productivity
- #2397 chore: use ARK as prefix for everything
- #376 docs: removes changelogs
- #377 docs: adjust tables
- #372 docs: rework esp32 and esp8266 pages
- #10 chore: fix v2.3 links
- #379 docs: update bounties page
- #608 fix: display second signature icon
- #380 docs: title-casing
- #2357 refactor(core-api): remove active delegates endpoint
- #365 docs: remove active delegates endpoint
- #366 docs: update CLI documentation
- #2369 feat(core-api): add rounds endpoint
- #2471 fix(crypto): add exceptions for invalid recipients
- #12 chore: add github templates, code owners and readme cleanup
- #390 chore: title case of new article
— faustbrian
- #2420 refactor: add types, remove dead code and unused imports
- #2417 refactor(crypto): remove extraneous Client class
- #2415 refactor: add more interfaces and types
- #2410 refactor(p2p): remove the status property from peers
- #2409 refactor(core-p2p): suspend a peer directly with the noCommonBlocks punishment
- #2427 refactor: add more types and interfaces
- #2426 refactor: replace Joi with AJV for internal validation
- #2425 feat(core-json-rpc): allow setting a vendor field for transactions
- #2411 refactor(core-p2p): add peer state interface
- #2421 refactor(core-database-postgres): add type hints and return types
- #2412 refactor(core-forger): add interfaces, type hints and remove comments
- #2414 refactor: hint IBlock/ITransactions instead of Block/Transaction
- #2424 refactor(core-webhooks): drop no longer needed pagination
- #2418 refactor(crypto): add more type hints
- #2422 refactor(core-json-rpc): reduce complexity and add types
- #2413 refactor: pass IBlockData instead of IBlock to isBlockChained
- #2416 refactor: replace bignumify with Utils.BigNumber.make
- #2396 feat(core-event-emitter): add off method
- #2408 refactor(core-p2p): store connection errors in connector
- #2378 refactor(core-p2p): types, method visibility and various fixes
- #2354 release: 2.3.0-next.4
- #2355 test: add TransactionFactory and RestClient as test helpers
- #364 docs(guidebook): add a comment section to the contribution guidelines
- #2359 refactor(core-p2p): don’t test private methods in the peer guard
- #2360 refactor(core-p2p): remove height difference ban
- #2367 release: 2.3.0-next.5
- #2372 docs: 2.3.0 changelog
- #2376 fix: insert the genesis block as soon as the database is ready
- #2364 refactor(core-p2p): separate responsibilities of classes
- #2373 test(core-logger): unit tests for logger and manager
- #2377 feat(crypto): add Block.fromHex, Block.fromBytes and Block.fromData methods
- #2375 refactor(core-container): bind plugin options before registering the plugin
- #2402 refactor(core-p2p): throw response errors instead of returning a success boolean
- #2379 refactor(crypto): move interfaces, types and models
- #2385 fix(core-p2p): log the IP address of the host we contact
- #2388 feat(core-api): return slip44 and wif via node/configuration
- #370 docs: use ARK as prefix for everything
- #2391 refactor: enforce BigNumber for satoshi based values
- #2393 feat(core-api): add v2/node/fees endpoint
- #2400 refactor(core-p2p): simplify handlers and remove dead code
- #2399 refactor(core-p2p): make SocketCluster configurable
- #2401 refactor(core-p2p): suspend peers if they exceed the rate limit
- #2403 refactor(core-database): return boolean from verifyBlockchain and log errors
- #2406 release: 2.3.0-next.6
- #2428 fix(core-database): don’t swallow errors in buildWallets
- #2352 refactor: replace various any with types, property visibility and interface naming
- #2434 refactor(core-database-postgres): throw an error if there is a wallet integrity issue
- #2472 docs(template): add release section to pull request template
- #2478 release: 2.3.15
- #2477 release: 2.3.14
- #2476 refactor(core): remove support for old release channels
- #2452 release: 2.3.0
- #51 AIP-30: P2P Communication Improvements
- #2454 chore(deps): remove extraneous jest-mock-process dependency
- #2473 refactor(crypto): make all Slots.* methods static
- #2455 chore(deps): bump all dependencies to the latest version
- #2480 style: apply linting and formatting to e2e tests
- #2456 fix: issues after merging 2.3
- #55 chore: clone 2.2.2 until 2.3.0 is tested
- #2466 fix(crypto): don’t use vendorField type as buffer encoding for IPFS
- #2465 release: 2.3.12
- #2446 release: 2.3.0
- #2447 Merge 2.4 into develop
- #2460 release: 2.3.1
- #2448 refactor(core-transaction-pool): add type, interfaces and sort out structural issues
- #2479 feat: add core-state to manage the state of in-memory data
- #2488 release: 2.3.18
- #2501 style: enable “no-use-before-declare” rule
- #2483 release: 2.3.16
- #52 refactor: let core auto-detect configuration
- #2435 docs: 2.3.0 changelog
- #2444 refactor(crypto): split the Crypto class into Hash and Transaction
- #2443 refactor: always use crypto identities to work with keys and addresses
- #2442 test(core-json-rpc): test responses with verification failures
- #2440 refactor(core-event-emitter): extend the node.js event emitter
- #2492 feat(core-state): in-memory storage for last N blocks and transactions
- #2439 refactor(corer-api): remove the legacy API
- #2489 refactor: move in-memory wallet logic to core-state
- #2438 test(crypto): unit test the BlockFactory and TransactionFactory
- #2429 feat(crypto): implement BlockFactory
- #2437 feat(crypto): implement TransactionFactory
— FloryanFilip
— ItsANameToo
— j-a-m-l
- #1120 feat: allow using a pool of background workers
- #614 test: fix node service network settings
- #1209 feat: remove productivity and missed blocks from delegates
- #1211 feat: display more information on the modals for sending transactions
- #391 docs: fix bold warning
- #1174 fix:
InputSelect
dropdowns - #1177 chore: git-ignore
plugins
folder - #1179 feat(plugins): allow adding new tabs to the wallet page
- #1176 feat(plugins): ask for confirmation to enable plugins
- #1203 fix: days on the X axis of the market chart
- #1202 fix: align the add profile placeholder
- #1185 fix: do not fail when navigating to other page while loading transactions
- #1184 fix: the wallet selection dropdown and the wallet sidebar filters
- #1175 fix: main sidebar menus (settings and peers/networks)
— jamesbooker
— Jarunik
— kristjank
- #387 docs: remove redundant step
- #382 Docs/release update
- #9 Docs/updates
- #386 docs: Adding GSoD documentation section for the program application
- #31 refactor: changes post method to accept hashmap
- #34 refactor: changes to Transaction object class
- #384 docs: refactored migration guide
- #393 docs: adjusting java demo to the recent changes
- #388 chore: add google docs banner
- #389 docs: typo code section
— luciorubeens
- #1160 chore: upgrade Vue and other dependencies
- #1170 fix(plugins): define the context of all hooks
- #1190 fix: do not use getStruct in ledger transactions
- #1205 fix: profile model validation to use letter avatar
- #1165 feat(plugins): include audio permission
- #1206 fix: fetch fees only if the network is available
— marekhoeven
— NayiemWillems
- #611 chore: add Altilly Exchange Wallet
- #1199 Added Altilly Exchange to known wallets.
- #612 chore: sort known wallets alphabetically
- #307 Removed duplicate line 109 in Swedish translation file.
— Nigui
- #2404 fix(core-database): handle unknown transaction search
- #2405 fix: prevent wallet managers from indexing/creating ghost wallets
- #2384 fix(core-tester-cli): init config manager from network preset
— sleepdefic1t
— supaiku0
- #2358 refactor(core-database): round logic
- #2496 refactor(core-transactions): reorganize exports
- #78 docs: update AIP29
- #2356 fix(crypto): use calculated id
- #2459 fix(crypto): deserialize type > 0 with vendor field instead of skipping it
- #2363 fix(core-p2p): frequent peer timeout errors
- #2353 fix(core-blockchain): initialize active delegates on startup
- #2432 fix(core-database): broken genesis wallet check
- #2462 fix(core-snapshots): use correct genesis block instead of hardcoding devnet
- #2486 fix(core-snapshots): reset unfinished round after import
- #2389 fix(core): pass cli flags correctly
- #2487 fix(core-forger): update configManager height
- #2387 refactor(core-container): pass suffix to container
- #2458 fix(core-transaction-pool): refuse transactions from senders with pending second signature registrations
- #2482 fix(core-database): initialize height on startup
- #2370 fix: cope with dynamic round sizes
- #2431 fix(core-database): wrong delegate order after start up
- #2366 fix(core-p2p): remove ping timeout ban
- #2380 fix(core-logger-pino): initial rotation
- #2464 fix(core): dont pass suffix flag to bip38 and bip39 command
- #2390 fix(core-p2p): sync with network
— vasild
- #2461 feat(core-transaction-pool): Switch expiration to chain height
- #2495 refactor(core-transaction-pool): simplify by not using insertion order
- #2497 fix(core-transaction-pool): don’t modify transaction’s expiration
- #2395 chore(crypto): bump vendorFieldLength and blockid activation heights
- #383 docs(api): add example curl commands to blockchain and delegates pages
- #2467 chore(crypto): remove unused methods to get/set/reset height
Issues
Last month we had 58 issues. Of which:
- 22 Opened.
- 36 Closed.
Opened
— alexbarnsley
- #1163 Tests for adding new network to the wallet
- #1162 Use vendorFieldLength value from core API config
— avfcpieface
— boldninja
— doubled1c3
- #1188 Replace icon for disconnecting from custom peer in network window
- #1207 Wallet forgets custom peers- repair that and also implement multiple custom peers
- #1187 Fat-finger fee checking function acting erratically for bridgechains
— faustbrian
- #2451 Allow custom (storage) implementations for core-transaction-pool
- #2481 Use memoization for serialise/deserialise
- #2441 Breaking Changes moving towards 3.0
- #2490 Move Block/Transaction business logic out of the wallet-manager
- #2407 [Continuous] Test Suite Improvements
- #2398 Implement JSON:API specification compliant API
- #14 Rewrite from scratch with new design
- #2436 Make Blocks.Block and Transactions.Transaction immutable
- #363 Update developer guidelines to be more strict and explicit
- #2493 Add CLI command to generate network configuration and genesis block
— Hugoo
— jamesbooker
— kristjank
— vulet
— Z-a-r-a-k-i
Closed
— avfcpieface
- #2258 Additional events to be emitted when transactions are added or removed from pool.
- #2365 Logging errors with 2.3.0-next.4
— cambo
- #2475 ark config:forger selection
- #1181 Smartbridge 64
- #1182 Smartbridge > 64 char accepts but doesn’t display in explorer
— faustbrian
- #1860 [JSON-API] Implement the wallet extension
- #1858 [JSON-API] Implement the general purpose extension
- #1878 [JSON-API] Implement an elasticsearch storage integration
- #1861 [JSON-API] Implement the delegate extension
- #1859 [JSON-API] Implement the exchange extension
- #1857 Use AIP11 Serialisation for P2P data exchange
- #1863 Implement all peer banning logic into a service
- #1875 Review the code and remove legacy one
- #1589 Migrate P2P API to Websockets
- #1595 Parallel Block Downloading
- #2371 Refactor container to remove Shared.Config
- #2423 Replace Joi with AJV
- #1936 [JSON-API] Implement the explorer extension
- #1586 Remove 1.0 API
- #2350 Delegate ranks in wallet manager are all over the place until the first block is received
- #2381 Make functional tests more robust
- #2362 Break down responsibilities of core-p2p classes
- #1886 Remove tests that relate to legacy code
- #2335 Migrate all tests to unitnet
- #1877 [JSON-API] Implement a database storage integration
— FloryanFilip
— j-a-m-l
— jamesbooker
— kristjank
- #1060 Transaction expiration calculation -> change times to only block time
- #2279 feat: improve transaction statistics endpoint for dynamic fees
— luciorubeens
— Nigui
— sleepdefic1t
— supaiku0
— vasild
— wownmedia
Releases
Last month there were 7 releases.
Core
- 2.3.0 at Tue, Apr 23, 2019 12:58 PM
- 2.3.1 at Tue, Apr 23, 2019 2:41 PM
- 2.3.12 at Wed, Apr 24, 2019 2:28 AM
- 2.3.14 at Thu, Apr 25, 2019 3:15 AM
- 2.3.15 at Thu, Apr 25, 2019 3:21 AM
- 2.3.16 at Thu, Apr 25, 2019 4:56 PM
- 2.3.18 at Fri, Apr 26, 2019 2:32 AM
Star Gazers
Last month there were 25 stargazers.
607035, anoor72, Araton95, ashwinipanwar, botsfordlenora, ButterflyBeauty, CaveSpectre11, daominhdam, Germannf, jamesbooker, jordan33h, josemerca1969, judotki, JuliusHenke, Justinzhq, leolujuyi, lheathcote, maimouna05, pbustos97, pengxiankaikai, salifm, simsieg, thiejaya96, tonyacannon28, zand3r
You all are the stars! ⭐️