Since our last platform update, which you can find here, we have implemented key changes to our storage SDK, DKG SDK, Storage Node, and even started developing a PoC, among other components. For starters, the Arcana SDK now has fallback functions letting developers trigger various functions depending on the events that occur during an API call. Our Auth SDK now allows developers to aggregate logins across different OAuth protocols. Apart from that, an authentication layer was added to the storage nodes. We’ve also developed a demo app that will be released in the future for showcasing basic functionalities that will available when a dApp is integrated with Arcana.
Before we dive deeper into the updates, here’s a quick roundup of all six components that make up the Arcana Platform:
Arcana JS SDK:
Auth SDK provides support to add logins using different OAuth protocols (eg— Google, Reddit, Discord, Twitch, Github, Twitter). Once signed in, it also fetches the private keys for that user which will be used to sign transactions that they submit.
Internally we run our own DKG implementation through which private keys are generated and stored as key shares on the nodes. The DKG SDK generates private keys that are stored as key shares on the nodes. When the keys are to be retrieved, shares are requested and combined.
An intuitive dashboard for developers to manage DApps’ configuration and storage.
Storage Node Docker Image:
Apps that run on storage nodes and perform permission checks on requests to see if they’re approved by the user. File-related actions are also performed through this.
Applications that showcase our platform’s full capabilities.
File actions such as upload, download, and share are logged, along with usage tracking and billing for a no-frills transparent experience.
Now that we’ve walked you through what’s what in our platform, we move on to elaborating the updates we’ve done in the recent sprint. Read on.
Arcana JS SDK
- Fallback functions were added to the SDK — three functions for upload & two for download. These fallback functions provide a way for developers to execute certain functionality when an event occurs (ex — on success, on error, on progress) instead of having to wait asynchronously.
- As a part of upload, there are three functions: on success, on error, and on progress.
- As part of the download, there are two functions: on success and on progress.
For example, the onSuccess callback function for the uploader can be used like this:
Note: These fallback functions can be modified to do anything the developer wants.
Aggregate login: At the moment, the login SDK provides adding OAuth login support for Google, Reddit, Discord, Twitch, Github, and Twitter accounts. What this means is that users can register/sign up on a dApp using these accounts. With the latest changes, we now allow developers the option to aggregate logins if a user signs up with the same identifier across different OAuth protocols. This option to aggregate logins for dApp users can only be set at the time of app creation.
When a developer allows aggregate logins, users who use different logins with the same identifier, such as email, will not get new accounts with different keys, this reduces the UX friction of users having to remember which social login they had used earlier to login.
Storage Node Apps
An authentication layer has been added to the storage node.
A storage node is composed of two parts: the authentication layer & the MinIO bucket which is used for the actual object storage. Whenever a user submits a txn to perform a file operation they get a token and a storage node endpoint from the gateway node; after which they then make a call to that storage node endpoint. The authentication layer then verifies the authenticity of the token and confirms whether the given user has the required permissions to perform the intended operation.
Demo app implementation
- A proof of concept to show what it looks like to integrate an app with the SDK
- Basic operations such as login using Google, fetch private keys, file operations (upload, download, share, revoke) are covered.
- Front end development of the app is completed.
Smart contracts have been updated so that user convergence no longer takes place during upload.
- When two users upload the same file, it should generate two different hashes in the DID.
- Now, when a user registers, we also generate a random number that gets stored in the smart contract.
- Every time an upload operation is done now, a hash is done on the file + the user’s random number to get user-dependent hashes and thus avoids the user convergence problem.
Added default app-level limits in the smart contract.
- App-level limits for bandwidth and storage have been added.
- Although defaults cannot be altered, the developer can manage their usage from the developer dashboard.
These were the latest platform updates from the recent sprint. Stay tuned for more exciting updates in our future platform update blog posts. If you are looking to catch up on our previous product platform update, you can check it out here.
For regular updates, informational content, and interesting insights about all things blockchain, technology, and engineering, follow us on our socials- links below!
About Arcana Network
Built for Ethereum and EVM-based chains, Arcana is the web3 infrastructure to easily onboard dApp users and enable user data privacy and ownership. Web3 developers use Arcana’s SDKs for a seamless, familiar user onboarding experience via social authentication and passwordless login. All user data is encrypted, secured with data access fully controlled by the users, and powered by blockchain.
Arcana has raised 2.7Mn USD from some of the leading investors and founders in the ecosystem such as Balaji Srinivasan, Founders of Polygon, Woodstock, Republic Crypto, and Digital Currency Group.
Watch out for Arcana’s upcoming Testnet and Mainnet in 2022.