Category

Hyperledger Sawtooth

(2.1.18) JAXenter: Making smart contracts safe with Hyperledger Sawtooth

By | Hyperledger Sawtooth, News

JAXenter: Hyperledger Sawtooth 1.0 has just been released. What’s the star feature of this milestone?

Dan Middleton: Since Hyperledger focuses on enterprise-grade blockchain technologies and is recognized as one of the leaders (rather than focusing on cryptocurrency), this is a major milestone for the Hyperledger technical community. Sawtooth has a number of differentiating features you’ll see listed below. The distinction for a 1.0 release, though, is not features but maturity. See #6 for a fuller description of what that means.

In a nutshell, though it means the code has been rigorously tested and reviewed, the platform has been field tested, and you can build your apps on the API without fear of it changing and breaking your apps — an issue that plagued many companies starting out with other blockchains.

More here.

(1.31.18) Enterprise Times: Sawtooth 1.0 to speed up blockchain development

By | Hyperledger Sawtooth, News

The Hyperledger Sawtooth 1.0 modular platform for building, deploying and running distributed ledgers has been released. This is the second of the Linux Foundation Hyperledger projects to reach this milestone. Last year the Hyperledger Fabric also hit 1.0 and is expected to go to 1.1 in the next few months. This year should also see at least one more of the nine currency projects hit the 1.0 milestone.

More here.

(1.30.18) Bitcoin Magazine: Hyperledger Releases Sawtooth 1.0

By | Hyperledger Sawtooth, News

Hyperledger is a collaborative cross-industry effort to advance blockchain technology that is hosted by The Linux Foundation. Today, January 30, 2018, sees the release of Sawtooth 1.0, the second active Hyperledger project to reach 1.0, following Hyperledger Fabric 1.0 in July 2017.

Sawtooth is a modular platform for building, deploying and running distributed ledgers using a new consensus algorithm, Proof of Elapsed Time (PoET), which targets large distributed validator populations with minimal resource consumption. Sawtooth was originally contributed by Intel and saw its graduation from “Incubation” to “Active” status in May 2017.

More here.

(1.30.18) Computerworld: Meet ‘Sawtooth,’ a new modular platform for building enterprise blockchains

By | Hyperledger Sawtooth, News

The Linux Foundation’s open-source blockchain collaborative, Hyperledger, has unveiled Sawtooth 1.0, a modular framework for building, deploying and running business blockchains.

Blockchain proof-of-concept pilots based on Sawtooth 1.0 have already been deployed to support multiple business cases, including music and media content rights attribution, healthcare transaction recordings, Know Your Customer (KYC) in financial services and others, according to Hyperledger.

More here.

(1.30.18) TechCrunch: Hyperledger releases Hyperledger Sawtooth 1.0, its second distributed ledger project

By | Hyperledger Sawtooth, News

Hyperledger, the open source blockchain project from the Linux Foundation, released Hyperledger Sawtooth 1.0, its latest open source digital ledger project. Sawtooth joins its sister project, Hyperledger Fabric which reached 1.0 in July last year.

Among the features in this latest open source distributed ledger product is on-chain governance, which lets members adjust the rules on the fly as required and dynamic consensus to modify the blockchain consensus protocol as the technology advances; advanced transaction execution, which provides the ability to execute transactions in parallel and support for multiple languages and Ethereum.

More here.

Announcing Hyperledger Sawtooth 1.0!

By | Blog, Hyperledger Sawtooth

Dan Middleton, Hyperledger Sawtooth Project Maintainer

Today, we are pleased to announce Hyperledger Sawtooth 1.0 is now available! This is a major milestone for the Hyperledger community, as it marks the second blockchain framework that has reached production ready status. This Hyperledger Sawtooth 1.0 release is the culmination of work from several companies intent on creating a distributed ledger designed for the enterprise.

Stretching back to at least 2014, the journey began with a research project code-named Sawtooth Lake inside Intel Labs. Its purpose was to explore the security and scalability questions arising from the adoption of Bitcoin and understand the requirements to move blockchain technology into enterprise. By 2016 research had produced Proof of Elapsed Time (PoET), to provide a green and performant alternative consensus to Proof of Work, and Transaction Families, an approach to building safe smart contracts. In the same year, Hyperledger was getting underway and Intel contributed Sawtooth Lake to Hyperledger as an incubated project. From incubation the community rapidly grew with code contributors from diverse companies and individuals and winning an ‘Open Source Rookie of the Year’ award. In May of the following year, Sawtooth dropped the “Lake” and graduated from incubation to “active” status within Hyperledger – a recognition of the maturity of its open source process and community.

We would not have the rich features or deployment maturity today without the collaboration and contributions from these organizations (alphabetically): Active Ticketing, Amazon Web Services, Bitwise.io, Cloudsoft, Context Labs, Dot BC Media, Ericsson, Hacera, Huawei, IBM, Intel, Microsoft Azure, Monax, Open Music Initiative, PokitDok, R3, T-Mobile, Wind River, and several independent engineers.

Throughout this time, we’ve maintained our focus on making smart contracts safe and bringing blockchain to the enterprise without cutting the benefits of blockchain that inspired interest to begin with. While maintaining that focus, we’ve not rested on PoET and Transaction Families. With the launch of Sawtooth 1.0 we introduce several new enterprise features:

  • On-chain governance – Utilize smart contracts to vote on blockchain configuration settings such as the allowed participants and smart contracts.
  • Advanced transaction execution engine – Process transactions in parallel to accelerate block creation and validation.
  • Support for Ethereum – Run solidity smart contracts and integrate with Ethereum tooling.
  • Dynamic consensus – Upgrade or swap the blockchain consensus protocol on the fly as your network grows, enabling the integration of more scalable algorithms as they are available.

Projects over the last 2 years with various consortia, startups, and established companies guided this set of features. For example, we found that it was difficult and error-prone to have manual configuration files on each system deployed at n different companies. If a configuration setting is required to be the same across the network, that seemed a lot like needing shared state agreement, which is after all the goal of a blockchain. Subsequently we added “On-Chain Governance” as a first class feature of Sawtooth. This also satisfies auditability goals that are driving many companies’ interest in blockchain.

When it comes to business logic, we learned how to manage and isolate applications on the blockchain. The resulting design enables parallel execution for better performance. It also enforces complete separation between the core blockchain and the apps, such that you can write the app in just about any language. In fact, that worked so well, that we were able to bring Hyperledger Burrow’s EVM on board as an application we call Seth (a play on words for Sawtooth and Ethereum).

A little more on the decision to prioritize the Seth / Ethereum contract compatibility – We found that a lot of companies had been experimenting with Ethereum but wanted the enterprise features offered in Hyperledger Sawtooth. Seth turned out to be an easy way to enable those companies to bring across their existing business logic and pick up new features like Permissioning and Un-pluggable Consensus.

Sawtooth Integration Testnet Console

For those close to Sawtooth, a lot of this is old news. Many of these features have been in test networks for three to six months by this point. During that period we’ve been focused on stability and performance. The engineering you won’t see are automated integration test networks we’ve built to run each release candidate build through a rigorous 7-day, multi-node test. This is in addition to the existing continuous integration testing we’ve had in place for years.

Where will Hyperledger Sawtooth focus its efforts in 2018? Well, we are already in motion on more work in performance and new work in privacy. To the former, we are looking at both consensus and core implementation. We’d like to add another consensus option for those planning to run small networks. Within the core, we are looking at replacing targeted python modules with optimized components in languages like Rust. On the privacy front, we have contributors investigating both trusted execution and zero-knowledge cryptographic approaches. We look forward to our enterprise users contributing back pilot implementations in these spaces as well.

We get feedback that application development is easier in Hyperledger Sawtooth than other platforms. Nonetheless, we’ll be making some changes to make it even easier. In a related vein, we’ve had great collaboration with Hyperledger Burrow, and we want to expand that collaboration to other Hyperledger projects including Fabric, Indy, and Composer.

We encourage developers to join our efforts on Hyperledger Sawtooth. You can download the code, read the documentation or join the discussion on Rocket.Chat.  You can also follow Hyperledger on Twitter or email us with any questions: [email protected]

Finally, on a personal note, it’s been a great privilege to work with my friend and colleague Mic Bowman on his inventions which launched Sawtooth and the inventions and innovations of my friends and fellow maintainers: Shawn Amundson, Tom Barnes, Ryan Beck-Buysse, Richard Berg, Anne Chenette, Define (Greg Setterholm), Nick Drozd, Zac Delventhal, Mark Ford, Andrea Gunderson, Pat Holmes, Jamie Jason, Feihu Jiang (Flying Tiger), Boyd Johnson, Adam Ludvik, Darian Plumb, James Mitchell, Cian Montgomery, Kelly Olson, and Peter Schwarz.

 

 

(Ethereum Logo  used under CC BY 3.0)

Hyperledger Releases Hyperledger Sawtooth 1.0

By | Announcements, Hyperledger Sawtooth

Second production-ready framework launched by The Linux Foundation’s open blockchain consortium

SAN FRANCISCO, CA – (January 30, 2018) – Hyperledger, a collaborative cross-industry effort created to advance blockchain technology, announced today the general availability of Hyperledger Sawtooth 1.0. Hosted by The Linux Foundation, Hyperledger Sawtooth is a modular platform for building, deploying, and running distributed ledgers. Hyperledger Sawtooth is the second active Hyperledger project to reach 1.0, following Hyperledger Fabric 1.0 in July 2017.

“We’re beyond excited to see not one, but two of Hyperledger’s active projects hit 1.0,” said Brian Behlendorf, Executive Director, Hyperledger. “This is a huge testament to the strong collaboration of our growing community – I look forward to seeing even more products and services being powered by Hyperledger Sawtooth later this year.”

Hyperledger Sawtooth is an open source distributed ledger framework and one of the nine business blockchain and distributed ledger technologies hosted by The Linux Foundation. Hyperledger Sawtooth delivers unique capabilities. A few examples are included below:

  • On-chain governance – Utilize smart contracts to vote on blockchain configuration settings such as the allowed participants and smart contracts.
  • Advanced transaction execution engine – Process transactions in parallel to accelerate block creation and validation.
  • Support for Ethereum – Run solidity smart contracts and integrate with Ethereum tooling.
  • Dynamic consensus – Upgrade or swap the blockchain consensus protocol on the fly as your network grows, enabling the integration of more scalable algorithms as they are available.
  • Broad language support – Program smart contracts in your preferred language, with support including Go, JavaScript, Python and more.

The efforts around Hyperledger Sawtooth have grown significantly; from the initial code contribution in April 2016, to Active status graduation in May 2017, to today’s version 1.0 availability. Hyperledger Sawtooth is supported by an active community: organizations including Amazon Web Services, Active Ticketing, Bitwise.io, Cloudsoft, Context Labs, Dot BC Media, Ericsson, Hacera, Huawei, IBM, Intel, Microsoft Azure, Monax, Open Music Initiative, PokitDok, R3, T-Mobile, Wind River and more than 50 engineers have contributed to the project. Additionally, Proof of Concepts (PoC’s) have been deployed to support multiple business cases including music and media content rights attribution, recording healthcare transactions, Know Your Customer (KYC) in financial services and others.

Hyperledger aims to create common distributed ledger technology that enables organizations to build and run robust, industry-specific applications, platforms and hardware systems to support their individual business transactions. The project has grown to more than 185 members since its inception, spanning various industries including finance, healthcare, the Internet of Things, credit card services, supply chain and aeronautics, among several others.

Community Quotes:

“Intel is committed to accelerating blockchain adoption through collaborations with industry thought leaders like Hyperledger and The Linux Foundation,” said Rick Echevarria, Vice President, Software and Services Group and General Manager, Platforms Security Division, Intel Corporation. “We are proud of our contributions and the advancements Hyperledger Sawtooth is making in privacy, security and scalability, which are critical enterprise requirements that will enable faster adoption of distributed ledger technology.” Learn more.

“It is exciting and gratifying to see the Hyperledger Sawtooth team publish their 1.0 release,” said Christopher Ferris, Chair of the Hyperledger Technical Steering Committee. “This release demonstrates that the ‘umbrella’ strategy, that Hyperledger has adopted, is working well and delivering on the promise of blockchain technologies for the enterprise.”

“The ticketing industry is crying out for security and immutable state with regards to ticket distribution to mitigate the growing nefarious agents that operate in this space,” said said Martin Vidler, Chief Technology Officer, Active Ticketing PLC. “Utilizing Hyperledger Sawtooth to create on-chain security, user reputation management and secure peer 2 peer transactions has shown that blockchain, focused and applied in the right way has massive benefits to both artists and consumers. We are proud to work in partnership with blockchain engineering specialists from Intel and other Hyperledger members, and this has made the Sawtooth Technology an integral part of Active’s proposition where this technology can benefit the live events industry.” Learn more.

“Our customers are looking to build scalable blockchain solutions for use cases across multiple industries,” said Matt Yanchyshyn, Director Solutions Architecture, Amazon Web Services. “Providing Sawtooth as a turn-key product running on Amazon Web Services (AWS) allows our customers to deploy their own blockchains in a matter of minutes, while reducing the time it takes to run blockchain-based solutions on AWS.” Learn more.

“Engaging with the Hyperledger Sawtooth team and technology has been an amazing experience from start to finish,” said Benji Rogers, Chief Executive Officer, dotBlockchain Media. “We are excited to continue the vital work of creating the global protocol and format for media, rights, identity, authority and communication with Sawtooth and Intel® Software Guard Extensions as its backbone.” Learn more.

“The release of Hyperledger Sawtooth 1.0 is a significant milestone for the Hyperledger community and the Enterprise Blockchain space, said Ram Jagadeesan, Distinguished Engineer and CTO of Blockchain at Cisco and Hyperledger Governing Board Member and Chair of Architecture Work Group. “At Cisco, we strongly believe in open source, standards and interoperability, and are excited to see the Sawtooth team reach this milestone and showcase the vibrant and diverse DLT ecosystem developing under the Hyperledger umbrella.” Learn more.

“Huawei welcomes the 1.0 release of Hyperledger Sawtooth,” said Stephen McNamara, Chief Architect Blockchain, Huawei. “Pushing the blockchain configuration onto the chain itself, the addition of “un-pluggable” consensus rules, and parallel transaction execution are all valuable additions to the platform. We look forward to trying it further now that the GA release is complete.” Learn more.

“Monax has very much enjoyed the pleasure of working with the Sawtooth team to bring flexible, fast, and secure blockchain technology into the real world,” said Casey Kuhlman, CEO, Monax. “Sawtooth’s design has allowed the team to leverage prior work from other Hyperledger projects embracing the essence of what the best open source projects are meant to do. We look forward to continuing to work together in driving forward the cutting edge of blockchain technology.” Learn more.

“The Open Music Initiative is proud to have selected Hyperledger Sawtooth as it’s reference platform,” said Panos A. Panay, Vice President, Innovation and Strategy, Berklee College of Music; co-founder Open Music Initiative. “Blockchain is developing to be a crucial technology for ensuring that creators and rights owners are appropriately identified and compensated across the entire value chain of the music industry. We are excited to see Sawtooth reach this milestone of maturity.” Learn more.

“As the first company to demonstrate a working solution of full hardware-based consensus and smart contract computation on blockchain, PokitDok relies on Hyperledger Sawtooth and The Linux Foundation to help us protect sensitive information, code, and data, while at the same time scaling these computational complexities,” said Ted Tanner Jr., Co-Founder and CTO, PokitDok. Learn more.

“Hyperledger Sawtooth is a unique blockchain platform because of its native integration with Intel® Software Guard Extensions. Another special feature is that smart contracts can be written in multiple programming languages including Java and Python,” said Shinam Arora, CEO, Primechain Technologies. “Primechain Technologies is working on developing a KYC system and a Financial Instrument Lifecycle Management solution on Hyperledger Sawtooth. We are also working on integrating Sawtooth in our blockchain appliance.” Learn more.

“As early partners on Hyperledger Sawtooth, we witnessed first-hand the innovative approach Intel takes to solving some of the mutual challenges faced by enterprise blockchain platforms,” said Todd McDonald, Co-Founder and Head of Partnerships, R3. “We are delighted to see them reach this milestone and look forward to continuing our work together.” Learn more.

“State Bank of India (SBI) is leveraging Hyperledger Sawtooth for our blockchain applications like Smart Contracts, KYC, AML, Consortium Lending, Reconciliation and others,” said Sudin Baraokar, IT Innovation Advisor to SBI. “SBI is working with PrimeChain Technologies and BankChain, an alliance of 30+ banks, in efforts to launch and deploy several production-ready Blockchain solutions in 2018.” Learn more.

“As the Un-carrier, T-Mobile approaches the wireless industry differently, from the customer experience to pushing the limits of the technologies that power our business and service,” said Warren McNeel, Senior Vice President, Digital Technology and Development, T-Mobile. “Using Hyperledger Sawtooth as a platform, the company created Sawtooth Hyper Directory as an Identity and Access Management (IAM) solution, and we’re excited to continue to develop new solutions on the platform that can help add value and functionality for both customers and our business.” Learn more.

“Given its potential benefits, the significance of blockchain has increasingly grown in recent times. The Hyperledger Sawtooth 1.0 platform can provide important infrastructure elements that enable the delivery of open commercial grade software components ledger for IoT devices,” said Michel Genard, General Manager, Operating Systems, Wind River. “Using this platform, it will be possible to track essential information about the open source in use, including security vulnerabilities, license compliance artifacts and cryptography technologies. We look forward to continuing our work with this project.” Learn more.

“Filament supports Hyperledger Sawtooth out of the box on our blockchain-native hardware, the Blocklet Chip™,” said Allison Clift-Jennings, CEO, Filament. “We currently have several Sawtooth IoT blockchain pilots underway that are designed to deliver trusted verification, interaction and full transaction capability in markets such as transportation and energy. Hyperledger Sawtooth 1.0 is the next step in enabling scalable and trusted distributed ledgers for these environments that need to physically trace assets and verify data in a blockchain.” Learn more.

“We are excited to collaborate with Intel to support Hyperledger Sawtooth through integration with the Coco Framework,” said Christine Avanessians, Principal Program Manager, Azure Blockchain. “Bringing the two technologies together will marry the benefits of the Sawtooth transaction processor model with the scalability and confidentiality capabilities of Coco.  In addition, our work around confidential computing on Azure will provide the ideal platform to seamlessly deploy enterprise grade blockchain solutions to address our customers’ business needs.”

Additional Resources:

About Hyperledger

Hyperledger is an open source collaborative effort created to advance blockchain technology by addressing important features for a cross-industry open standard for distributed ledgers. It is a global collaboration including leaders in finance, banking, Internet of Things, supply chains, manufacturing and Technology. The Linux Foundation hosts Hyperledger as a Collaborative Project under the foundation. To learn more, visit: https://www.hyperledger.org/.

Data Model Considerations in Hyperledger Sawtooth

By | Blog, Hyperledger Sawtooth

Guest post: Zac Delventhal, Hyperledger Sawtooth maintainer, Bitwise IO

Hyperledger Sawtooth is an enterprise blockchain platform for building distributed ledger applications and networks. Sawtooth simplifies blockchain application development by separating the core system from the application domain. Application developers can specify the business rules appropriate for their application, using the language of their choice, without needing to know the underlying design of the core system.

In this blog post though, we wanted to get past the “Hello World” content and talk about some of that underlying design to allow advanced developers to extract more performance. (TLDR: Read this design doc). Sawtooth relies on a merkle radix data structure as the underlying data store. This differs from Hyperledger Fabric, but is common with some other blockchain implementations.

If you are just getting started with Sawtooth you really don’t need to understand any of this, but if you are interested in digging deeper or are working on an intensive blockchain application there’s some design considerations to think through on your data model.

Let’s say we have some resources we plan to store as UTF-8 encoded JSON strings. You can use any byte encoding you like, and there are better options than JSON, but this will give us something familiar and human readable as an example. Our resources are going to have a pretty simple structure, just a unique id, a description, and an array of numbers:

  {

    "id": "123",

    "description": "An example resource",

    "numbers": [4, 5, 6]

  } 

 

So now we have to decide how to store this data on the merkle radix tree. Sawtooth addresses are made up of 35-bytes, typically represented as 70 hexadecimal characters. The first six characters are the namespace for our transaction family, but the final 64 characters we can use however we like. Let’s go through three possible setups we could choose:

  1. All of our data is stored at a single address.
  2. Each resource is stored its own address.
  3. Each resource is stored over multiple addresses.

One Address For Everything

This is an absurd design only appropriate for the most rudimentary hello world examples. But why is it absurd? Exploring that should provide some useful insights. Let’s say we just take all of our data, and throw it in one JSON object indexed by the resource ids:

{

    "123": { "id": "123", "description": ... },

    "456": { "id": "456", "description": ... },

   ...

 

And we store this massive string at whatever our namespace is plus 64 zeros:

  123456 0000000000000000000000000000000000000000000000000000000000000000:

    '{"123":{"id":"123","description":...},"456":{"id":"456",...'

  }

(Note that the space after the namespace in the addresses above are just for illustration purposes. Sawtooth addresses do not have spaces.)

From a certain perspective this may be attractive for its simplicity. You don't need to think about addressing at all! You just always read/write from the one address and pull up whatever JSON is there. There are unfortunately two big downsides to this approach:

  • First, you now need to read/write a lot of data anytime you want to make a modification. Anytime anything changes, you will be parsing a huge JSON string, updating some small part of the resulting data, then re-encoding it as JSON and writing it back to the merkle tree. With any number of resources this will quickly become a huge performance bottleneck.
  • Second, you will have hamstrung one of Sawtooth's greatest strengths: parallelism. Sawtooth validators are capable of simultaneously validating multiple transactions, but if those transactions are trying to write to the same address, they cannot be executed in parallel, and must be validated sequentially.  So with all of our data in a single address we guarantee validators will only ever work on one transaction at a time.

One Address per Resource

This approach is a little more sensible and still fairly simple. While you don't get to ignore addressing completely, all you really need to do is to find a way to turn each resource's unique identifier into 64 hex characters. A common method is to just take the first 64 characters of a hash. Here's how we would store our example resource above if we took the SHA-512 hash of the “id” field:

123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1:

    '{"id":"123","description":"An example resource","numbers":[4,5,6]}'

This is likely the approach you'll see in many applications. It is easy to reason about, and as long as each resource is not too large, or updated too frequently, performance should be reasonable. But what if we do have large or frequently updated resources? Could we split this up further?

One Resource over Multiple Addresses

64 hex characters provides us with trillions and trillions of potential addresses. There is no reason not to get as fine-grained as we like with them. For example we could use the first 60 characters for a hash of the identifier, and then use the remaining 4 characters for a hash of each property name:

123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7a f0bc:

    '{id:"123","name":"id","value":"123"}'

  123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7a 384f:

    '{id:"123","name":"description","value":"An example resource"}'

  123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7a 542a:

    '{id:"123","name":"numbers","value":[4,5,6]}'

This is also a pretty absurd example. In order to reconstruct the resource later we have to spell out the property name and include the resource id repeatedly. Overall we are storing a lot more data, but we have minimized the amount of data we need read/write in each update. Also, while our validator can now do some fancy tricks like updating the "description" at the same time it updates the "number", that probably isn't important with our tiny little array of three numbers.

But what if we had thousands of numbers that changed frequently? We could instead use those last address characters as array indexes. Something like this:

  123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c04 00000000:

    '{id:"123","description":"An example resource","nextIndex":4}'

  123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c04 00000001:

    '{id:"123","number":4}'

  123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c04 00000002:

    '{id:"123","number":5}'

  123456 3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c04 00000003:

    '{id:"123","number":6}'

So now we are using 56 characters for the id hash, and reserving the last eight for pieces of the resource, which gives us room for a few billion pieces. All of the basic resource info is at 00000000, while any remaining addresses each store a single number.

This is starting to get pretty complex, and reconstructing this resource later will be a pain, but adding a new numbers has become extremely simple. Imagine the array was 10,000 items long. In any of the previous designs we would have had to parse that entire gigantic string and then re-encode it, just to add one item. With this design, we just add a new entry to the next index. Also, the validator can be highly parallelized now. Adding new numbers, updating the description, and changing existing numbers can all happen at the same time.

Conclusion

There is no one correct answer or strategy when it comes to structuring your data model. You'll need to decide for yourself what is appropriate based on your developer and application needs. In Sawtooth Supply Chain, we have "Record" resources with multiple arrays of telemetry data that could be updated on a second by second basis, and might stretch to millions of entries. So Records are highly split up in a manner similar to the numbers example above. Logically we are just pushing to an array, but in practice we needed to break that into different buckets. For a full discussion of this pattern take a look at the supply chain doc on the subject.

By contrast, in Sawtooth Marketplace there wasn't as much opportunity or need to do anything so complex, and it follows uses a simple one address per resource pattern.

If you’re interested, you can learn more about Hyperledger Sawtooth and see real world examples of how the technology is being used. You can also read the documentation, join the community on RocketChat or pull the code from GitHub to kick the tires today.

Zac Delventhal is senior software engineer at Bitwise IO, and a maintainer on Hyperledger Sawtooth. When bored, he can be found giving overly long explanations about Hyperledger concepts in blog posts or on RocketChat.