Skip to content
This repository has been archived by the owner on Jan 13, 2023. It is now read-only.

Releases: itzmeanjan/harmony

Integrated pub0sub, new graphql query methods

23 Jul 06:13
4572d37
Compare
Choose a tag to compare

What's new ?

  • I'm now using Pub/Sub Hub 0hub for publishing transactions joining/ leaving {pending, queued} pool
  • Added new graphql query methods for finding out all txs waiting in {pending, queued} pool with gas price >= or <= specified one
  • Now transaction gas price can be queried in numeric form, using graphql field gasPriceGwei

Possible race condition eliminated, came from dependency

09 May 06:44
Compare
Choose a tag to compare

What's new ?

Just a dependency version update, which introduced one race condition.

Library pubsub was not handling access to shared variable with locks, was resolved here ✌️

All set ✅

Swapped out Redis Pub/Sub, now using `pubsub`

08 May 13:06
Compare
Choose a tag to compare

What's new ? 🤔

Previously for communicating new tx(s) ( joining/ leaving mempool ) to clients subscribing to various topics, Redis Pub/Sub was used. Recently I also worked on developing one in-app messaging library for Go projects called pubsub, which leverages native Go functionalities for enabling in-app message passing in following patterns

  • SPSC
  • SPMC
  • MPSC
  • MPMC

You can read more about that library here

I decided to use pubsub, replacing Redis Pub/Sub. It after through testing everything seemed to fit well.

And here's release flaunting pubsub in harmony 🔥

✌️

Releasing v0.9.2

03 May 10:54
0b9c720
Compare
Choose a tag to compare

What's new ? 🤔

  • Cleans up occupied memory, used for keeping track of dropped/ confirmed/ unstuck tx(s)
  • Overtime this memory usage won't become a problem anymore
  • After 1 hour tracked txHashes are pruned as of now, which can be made more flexible 🧐

Released v0.9.1 with go routine supervisor

25 Apr 02:50
cd01e26
Compare
Choose a tag to compare

What's new ? 🤔

Just added one go routine supervisor go routine, which will keep track of block header listener worker's health & if header listener dies in mid, new worker to be spawn up to take its place after a while. It'll also process those blocks which were produced during offtime.

Releasing v0.9.0

19 Apr 14:44
7fe7ba3
Compare
Choose a tag to compare

What's new ? 🤔

  • Consider slowly propagated tx(s), using buffered queue of tx(s) which are included in mined block, but could not be found in mempool immediately
  • Prune them later when they're propagated through network & received by harmony

Solving dangling tx(s) issue, which are actually mined, but used to be considered as pending

Improved stat API

18 Apr 01:32
cc02779
Compare
Choose a tag to compare

What's new ?

/v1/stat API has been updated to include more info

{
  "pendingPoolSize": 113569,
  "queuedPoolSize": 22768,
  "uptime": "14h59m12.066436482s",
  "processed": 822953,
  "latestBlock": 12261127,
  "latestSeenAgo": "7.876590164s",
  "networkID": 1
}

First production grade release 🥳

14 Apr 11:44
20e7368
Compare
Choose a tag to compare

What's new ?

  • After extensively running it with Ethereum Mainnet, under high tx pressure, it has shown good performance while processing inbound/ outbound tx(s) 😎
  • Also packs lots of improvement in how state is managed in each of pending/ queued pool
  • All operations are concurrent safe, with out using any locking primitives, all powered by go routines & channels
  • Using better data structures, give us better performance
  • You can also ask harmony to not consume whole memory, by setting {Pending, Queued}PoolSize fields

Releasing v0.7.0

10 Apr 12:54
b130077
Compare
Choose a tag to compare

What's new ? 🥳

  • Avoiding lock-contention as much as possible, using channels more
  • Lazily prune pending/ queued pool state
  • Subscribe to block header(s) for learning about which block is including which tx(s) & prune those if seen in mempool
  • All utility methods build on top of mempool, will be leveraging multiple cores ( if available )

✌️

Releasing v0.6.0

31 Mar 11:57
95496cb
Compare
Choose a tag to compare

What's new ?

  • Improved in-memory state management 🥳
  • Response time lesser than before, as lots of queries are ready to answered ✅
  • Overall better performance that before
  • Now P2P network's peer connections are protected with NOISE