Development

GitHub metrics

Development is ongoing. Commits on public GitHub appears regularly, several times a day.

Developer activity (from Coinlib.io)

IOTA is a flexible protocol that can be utilized in various ways. The most common is value transfer via the native token. However, IOTA can be easily extended by building standards on top of the base protocol. Both Masked Authenticated Messaging & Flash Channels are a perfect example of this.

IOTA is proposing a new standard that will enable IOTA-based applications to be built around geographic regions.

Introducing IOTA Area Codes (IACs)

IACs are short, tryte-encoded, location codes that can be used to tag and retrieve IOTA transactions related to specific locations. The IACs are typically 10 trytes long and will represent a 13.5m by 13.5m area, at the equator. However IACs can be 11 trytes long and represent a 2.8m by 3.5m grid.

IACs are a direct copy of the Open Location Codes, also known as Plus Codes, proposed by Google Zurich in 2014. There are a few minor changes to make it compatible with IOTA’s encoding.

Why this is powerful

When publishing information on IOTA there is no way to easily identify transactions that relate to a geographic areas. These transactions could contain localized service advertisements, sensor information or any number of other data formats.

In order to find transactions related to an area you’d have to register your transactions with a centralized service, like a data marketplace, that collects locations to store and serve it to consumers.

By using IACs in the first 11 trytes of the 27 tryte tag field in an IOTA transaction, the team can localize an IOTA transaction to a 2.8m by 3.5m area. This allows for someone to find a transaction related to a small area, however the real value of this system comes from the ability to query large swaths of land for related transactions.

Querying large areas

The original OLC protocol is able to accurately represent areas on the globe by using 5 pairs of characters. Each pair of characters added to the code represent a 400x increase in accuracy. A side effect of the code being determined by sequential set of pairs, rather than a unique code, is the team is able to vary the accuracy by removing pairs from right to left. This allows them to ingest and store the pairs in a way that they can query somewhat efficiently.

So by querying the initial 4 trytes of tags, that match the correct IAC format, they can find transactions in a 100km by 100 km area.

Example: By querying for all tags that start with NPHT they can find all items in a 100km by 100km area covering Berlin & parts of Potsdam. Then by using these 6 trytes: NPHTQO they are able to see transactions within a few suburbs in central/north Berlin.

Examples

Today, IOTA is publishing the library that enables encoding and decoding of location data. Along with this, Martyn Janes has created a fully featured demonstration that allows you to do the following:

Create & convert IACs

Publish IAC messages to the Devnet

Wildcard query all IAC transactions on the Devnet.

Watch IAC transactions appear in realtime on a map.

Demo Application.

Github Library.

NPM Repo.

Trinity Update: March 19th:

In the previous update, IOTA team highlighted some of the ongoing developments for the security audit of the Trinity wallet. This post outlines their progress and results.

As announced in the last update, the Trinity mobile and desktop applications are undergoing a security audit by a leading security firm. The audit will assess authentication, storage areas, configuration and validation in the applications, and will ensure that a high level of security is in place. Since submission for security audit, the team has tackled the outstanding bug list for mobile reported by their beta testers.

Here is a summary of some of the recent completed and in-progress works.

Desktop

- Add retry button, error log and change node Realm migration (#1041)

- Add migration retry and node change functionality (#1094)

- Update Entangled node use 1) add batched proof-of-work and 2) switch to trits address generation (#1095)

- Ledger functionality and UX bug fixes (#1101)

Mobile

- Correctly update history screen props when modal props are updated (#1046)

- Automate entangled android build (#1065)

- Integrate native signing (#1097)

- Fix Entangled (iOS) bugs/memory leaks (#1100)

- Replace QR dependency (#1119)

- Rebuild Entangled libs with API level 19 (#1138)

- Fix UI bugs and refactor some areas of codebase (#1146)

- Enable 2FA on “view seed” screen and improve UI (#1171)

- Use local time for SeedVault export file (#1178)

- Document entangled build steps (#1052)

- Add account name autofill for SeedVault (#1181)

- Link up trit-based checksums (#1172)

- Refactor CustomTextInput component and add ability to mask/unmask text (#1173)

Shared

- Fix issues related to renaming account (#1045, 1077)

- Integrate batched proof-of-work (#1071)

- Remove dead nodes from local configuration (#1087)

- Setup realm schema migration (#1089)

- Update Argon2iOS to accept Int8 array (#1090)

- Fix invalid bundle issue on zero value transaction with bundle size > 1 (#1093)

- Add more default nodes (#1106)

- Fix order in which bundles are stored (#1108)

- Do not store invalid bundles constructed with local PoW (#1122)

- Fix account index issue (#1139)

- Add eclipse project files path to gitignore (#1140)

- Add polling service for automatically retrying failed transactions in wallet (#1142)

- Resolve request package to version >=2.88.0 (#1148)

- Reduce quorum size temporarily to reduce load times (#1149)

- Fix propType warnings in tests (#1150)

- Disable quorum on login (#1157)

- Update the year header to be current (#1160)

- Resolve node.extend package to version >=1.1.7 (#1161)

- Update sinonjs to version ^7.2.7 (#1163)

- Improve realm schema and data migration setup (#1168)

After bug fixing, team’s focus has shifted towards completing the outstanding issues and features required for full release.

Taking into consideration advice from the security audit team, they aim to introduce deep linking into the final release. This will allow users to automatically open Trinity by clicking on a link on a vendor’s site, ready to pay the correct amount to the correct address.

The team also hopes to have manual sweeps ready before (or soon after) full release. Trinity does not traditionally allow spending from “previously spent addresses” for safety reasons. This new Manual Sweep feature will unblock these funds by securely transferring them to an unused address, whilst minimising the chance of attack.

Another area that the team is focusing on before full release is test coverage. While Trinity already has good overall test coverage, it still misses some tests for critical areas such as the keychain and the Realm database. They also plan to add end-to-end tests, which will allow them to test changes in an environment that simulates user behavior.

More on Trinity Wallet.

Videos from Official IOTA Foundation Youtube channel:

In this stream, Dave de Fijter dives into the Open Sourced Data Marketplace code. He goes over how to deploy a new marketplace to Firebase and talks about the sensor he plans to add to it in a next stream.

Source code.

More about Open sourcing the Data Marketplace.

In this webinar, IOTA’s Director of Ecosystems, Lewis Freiberg, provides a comprehensive exploration of the IOTA protocol: Distributed ledgers and their practical applications. He provides several examples of IOTA Smart City use cases.

IOTA is hosting a Smart City contest via Hackster.io, which ends April 6th, 2019. At the heart of the contest is the opportunity for developers from around the globe to solve inter-city challenges submitted by a variety of corporate entities. Corporate sponsors who developed the Smart City challenges include Groupe Renault, ENGIE Lab CRIGEN, Birdz by Veolia, and Sopra Steria while supporting sponsors include Tech Mahindra, Future State CoFoundery, City of Austin (Transportation Department), and Norske Helsehus.

IOTA’s unique distributed ledger Tangle technology will be used by participants to develop innovative IoT/M2M and data driven concepts for the smart city environment for an opportunity to win over $10,000 in prizes.

For more information on specific themes and how to participate, visit the IOTA contest page on Hackster.