The Transmute Framework has graduated to Alpha. Before you dive in, there’s a couple caveats to keep in mind.
Hosted IPFS Support Coming Soon
We currently provide test infrastructure to support the Transmute Framework; alternatively, you can use your own IPFS API. We’re working on tooling and support to make this easier in the future, but in the meantime, you’ll need to allow mixed content for test IPFS server. We will fix this shortly.
Testnet Performance Varies
The smart contracts used in the Transmute Framework Alpha are deployed to the Ropsten Testnet. This means you will need Ropsten Ether to use the demo; feel free to contact us for testnet ether if you need some.
Announcing the Transmute Framework Alpha
The Transmute Framework helps developers build on decentralized technologies like Ethereum and IPFS via a familiar javascript interface. We support rapid prototyping by enabling developers with Redux experience to quickly build out decentralized applications.
This release focuses on support and documentation for the EventStore. Using the EventStore and the Transmute Framework, developers can save events to Ethereum and IPFS, track and query the event-sourced data models, and leverage the immutability properties of IPFS and Ethereum.
A Deeper Dive on the Transmute Framework Architecture
One challenge developers face when building their first dapp is: how to manage state?
Since Redux developers are accustomed to managing state with Redux, we chose to provide a Redux-like api for managing dapp state.
Events can be used to model many applications and systems; the EventStore solidity smart contracts store events. Storing information on Ethereum is expensive, so we leverage the decentralized file system IPFS to store larger javascript objects, and then we store the IPFS identifier in the Ethereum smart contract. Together, Ethereum and IPFS are used to construct a Redux-like API for managing application state. IPFS’ content addressing strategy lets us store references to large slices of data easily.
Another challenge dapp developers face is: syncing smart contracts state with external databases.
This is important for querying, caching, analytics and external integrations. We use the term ReadModel to describe the state of an entity built up from events.
Imagine a power plant with many switches and many possible states. Each time a switch is changed, an event is logged, describing the time and state of the switch. By reviewing this event log, we can see what the current state of the power plant is by looking at how it has changed over time.
Event sourcing is a powerful tool that allows data management to evolve as it grows — always with the ability to rebuild state from events. ReadModels process the events from Ethereum and IPFS, and use a reducer to generate a state object that can be saved to caches or databases for querying.