Development Update
blockchain·@nimiq·
0.000 HBDDevelopment Update
## JungleDB, Testnet, UX, Light Clients We like to keep our updates meaningful. Please be patient if we don’t report frequently in our blog as we prefer to focus on production and supply information as we reach tangible milestones (please refer to out Vlogs for more frequent insights). We’ve been working hard on many ends, some of are just not spectacular and include dragging administrative steps for legal and operational structures, setting up our German Nerd Temple, transitioning team members from former employment proceedings, hiring new research and task specific talent, etc. # A word about client types Nimiq is a Browser-based Blockchain and peer-to-peer network where Browsers are first-class citizens. As detailed in our [Technical Overview](https://medium.com/nimiq-network/nimiq-a-peer-to-peer-payment-protocol-native-to-the-web-ffd324bb084), Nimiq Network works using underlying Backbone Nodes which act as entry point and signaling server for Browser Nodes to establish browser-to-browser WebRTC connections. In a nutshell, Nimiq introduces two client types: - [Browser Clients](https://github.com/nimiq-network/core#run-browser-client) run natively in the user’s Browser and relies on [IndexedDB](https://www.w3.org/TR/IndexedDB/) to store/retrieve securely each wallet’s private key. - [NodeJS Clients](https://github.com/nimiq-network/core#run-nodejs-client) (a.k.a Backbone Clients) work in any device that supports [NodeJS](https://nodejs.org/en/) (yes, this includes [all these hardware platforms](https://github.com/nodejs/node/blob/master/BUILDING.md#building-nodejs-on-supported-platforms)). In NodeJS the best approach for storing sensitive information is of course [LevelDB](https://github.com/google/leveldb). # A new layer of abstraction A quick look at the client types used by Nimiq Network give us a glimpse of complexity to come regarding **data abstraction**. As simplicity preachers we decompose a problem in smaller bits and then attack those bits, making the answer easier to achieve. Nimiq Network works with both client types and shouldn’t have to care about the client type for most operations. Work that involves both Browser clients and Backbone clients should use an **abstraction layer**. Along comes JungleDB to the rescue. # What is [JungleDB](https://github.com/nimiq-network/jungle-db)? JungleDB is a Wrapper around IndexedDB in browsers and levelDB in NodeJS unifying their interface. JungleDB also adds additional features to this interaction: - Transactions with read-isolation - Implements secondary indices for levelDB **_To learn more about JungleDB check our [Vlog: Pascal’s Jungle DB](https://www.youtube.com/watch?v=LmyypEaNPUI&t)_** ## JungleDB is Open Source JungleDB is fully Open Source, we’ve built and shared: - Fully documented code for Browser + NodeJS - Tests for the database - A benchmark suite - Sample application # Next Testnet version As we approach our first update of the Testnet, we are combining a series of improvements, this includes JungleDB. Another main feature for the next Testnet version is a new difficulty adjustment: - Instead of adjusting difficulty every 10 blocks, it will be adjusted each block - The new difficulty is computed from the last 100 blocks - Changes at every block will be lower than currently at every 10th block, ensuring a smoother adjustment # In the works In parallel two major efforts are under way. We have been working on location with San Francisco based [Y Media Labs](https://ymedialabs.com/) on defining the User Interface experience for Nimiq and are very excited about the progress. This week we have started with the implementation of our fresh designs. We are in line with our goal of creating an interface that is intuitive, simple and beautiful and will share sneak previews in time. In addition we are implementing “[proofs of proofs of work](http://fc16.ifca.ai/bitcoin/papers/KLS16.pdf)” to compress the blockchain to sublinear space complexity such that light clients can truly sync in seconds without any trust checkpoints. We are excited to hardfork our Testnet to the enhanced “**Lightchain Protocol**” as soon as possible. [<center>  Team Nimiq</center>](https://nimiq.com) <center>[Steemit](https://steemit.com/nimiq/@nimiq) | [GitHub](https://github.com/nimiq-network/core) | [Blog](https://medium.com/nimiq-network) | [WeChat](https://nimiq.com/static/images/wechat-qr.png) | [Telegram](https://t.me/joinchat/AAAAAEJW-ozFwo7Er9jpHw) | [Slack](https://nimiq-slackin.herokuapp.com/) | [Twitter](https://twitter.com/nimiqnetwork) | [Youtube](https://www.youtube.com/channel/UCJ1qu3KXwfmkGwBkU8F1jQg) | [Reddit](https://www.reddit.com/r/Nimiq/) | [Webpage](https://nimiq.com/)</center>