Development

Protocol Smart Contracts

The protocol now supports cancellation of orders based on two criterias: 1) the validSince timestamp (in milliseconds) and 2) the trading pair. Previously only validSince was respected. This gives users finer control over their cancellation operation.

timestamp (in milliseconds) and 2) the trading pair. Previously only was respected. This gives users finer control over their cancellation operation. We also removed the salt field from order structure to reduce gas usage. Wallets can take advantage of the validSince field and the validUntil field (both in milliseconds) by manipulating the millisecond part to make orders generate a different hashes when all of the other fields are the same.

field from order structure to reduce gas usage. Wallets can take advantage of the field and the field (both in milliseconds) by manipulating the millisecond part to make orders generate a different hashes when all of the other fields are the same. We also evaluated the work we need to do for supporting ERC223. Based on what we learned, if an ERC223 token is backward compatible with ERC20 and is a superset of ERC20, the Loopring Protocol will automatically support ERC223 token trading as well as hybrid trading between ERC20 and ERC223.

Wallet

We have fixed a number overflow issue and made Loopr show markets that are not supported by selected relay in a disabled state.

We have also added a feature in our wallet that allows binding a NEO/Qtum address to your Ethereum wallet. LRC token holders can use it to receive LRN and LRQ airdrop in the near future. Please help us test this little tool and report any issues. Note that this feature is on the Settings page once you’ve unlocked your wallet.

Bind NEO/Qtum addresses

We have finished our first round of invitation-only testing and received tons of feedbacks. This feedback has been considered and evaluated for adoption into the design of beta2. As previously stated, we are not developing the wallet based on the current codebase, instead, we have started a new project called Loopr2 for beta2. Loopr2 is a ReactJS based web application designed from scratch with cross-browser support. We strive to make Loopr2 a much better and simpler user experience.

wireframe

While we are developing Loopr2, the current MVP version, beta1, will still be available as https://loopring.io for people to try.

Today we dropped address-whitelisting, so now https://loopring.io is accessible to everyone.

We will share Loopr2’s wireframe and some UI pages with selected community members for additional feedback. Stay tuned.

Relay-Mesh and Relay

One of Loopring’s core ideology is order/liquidity sharing. We truly want to make order sharing enabled by default. We have tried IPFS’s pubsub feature to give relays the ability to talk to each other, to broadcast and receive orders. But, we found there are many problems with this solution (Daniel is considering to write a dedicated blog post on this topic). Now we have decided to build a relay-mesh network that leverages consortium blockchain technology.

https://github.com/Loopring/relay-mesh was created for such an effort. Currently Hyperledger Fabric is used to build the mesh network (in the dev branch), but we’ll also consider NEO’s DAN technology in the near future.

We have also successfully run the relay-mesh network locally, even though work on this project has just begun. In the future we will make sure orders are mined into blocks every 1 or 2 seconds, and we will trim off orders in older blocks to make syncing of block data faster for newly joined relays.

Nodes in such a relay-mesh network are consumers of orders(miners) and/or producers of orders (wallet backends). We haven’t figure out a way to incentivize producers and tax consumers yet, this remains a challenge for us. We are open to solutions from the community. If you know of any academic papers that may enlighten us, please feel free to drop us a line.

In the future, we will refer to relay-mesh as the consortium blockchain and its nodes for order sharing. We will refer to relay as the server that talks to the relay-mesh to receive or send orders, that builds a local order-book and optionally mine order-rings.

Last week we added support for relay to access more than one Ethereum node and also tried to refactor the code to handle orders for different blockchains. We’ve encountered some issues here and we look forward to get some of them resolved in the weeks to come. We also have some other challenges, such as the maintenance/updating of the nonce value for each address; and transaction fails on chain while simulation showed no issue during ring-mining locally.

Looping.js

We didn’t update this library much these past 2 weeks; but, it will be updated along the development of Loopr2.

Operation and Marketing