Running Safient node!

Koshik Raj
safient
Published in
4 min readJan 11, 2022

I believe that most of us are familiar with this historic tweet by Hal Finney, a well-known cypherpunk and one of the early contributors to Bitcoin. In fact, he was the first recipient of bitcoin.

Looking back at this tweet still gives me chills as it is also a reminder of how far we have come in the quest of creating digital money and a trustless yet efficient digital economy. We at Safient too are contributing to this vision by helping users in this exciting, liberating ecosystem by providing a safe and convenient way to onboard, safeguard and inherit their crypto-asset ownership and thus their crypto legacy. We have come a long way from ideating to testing the prototype with several internal releases. Finally, we are ready to test our protocol in the public test infrastructure. So, we thought what better way to cherish this monumental tweet by Hal Finney than running our own Safient protocol nodes for the first time in a public test environment on this same day 🙌. We consider this as an early milestone in our long and ambitious roadmap in building a safe and convenient way to manage crypto wallets.

What is this Safient node?

Safient node is a service that is run by the guardians of the Safient protocol that helps to safeguard and recover the safes which in turn gets incentivized for their efforts. We call these guardians ‘Safiens’.

Safiens
noun
1. are the trustless guardians of the protocol. Why the name “Safien” you ask? Because they are a wise species under the genus Homo that helps to protect and recover the safes on Safient protocol. Consider them as an evolved version of “Sapiens” 👷‍♂️

So, the network formed by these guardians is essential to guarantee the robustness and security of the protocol. This is why we are keen on testing them in a public-facing testnet environment. The current test deployment makes use of testnet infrastructure for both onchain and off-chain solutions. So, we may flush and upgrade the data or relevant contracts during any future releases.

We have deployed the onchain contracts on the Ethereum Kovan network. To store the off-chain data we use the Ceramic clay testnet and a Textile ThreadDB (P2P database) testnet instance.

Who can run the node?

Simple answer — “anyone” 🙂. Anyone can run a Safient node to become a guardian and help secure our protocol network. Since it is a testnet implementation, we don’t have any token staking requirements or real incentivization for the guardians. And we may also have some minor or critical bugs in our early deployments. So, we welcome anyone who wants to be part of this early journey and help us squash some bugs and make our protocol better.

How to run a node?

Running a test node is a breeze as we don’t need any real infrastructure setup but only a few testnet setups. Currently, our Safient node can be only run using our command-line interface NPM package. So, first, you need to install our package using a node package manager like NPM in any machine (preferably one that is hosted remotely and can run 24/7) that has nodejs installed.

Install the package using the below command:

npm install @safient/cli -g

Once the package is installed without any errors you should be able to run a Safient node on testnet with the following command in an empty directory.

ℹ️ Before executing the command there is a requirement to provide a few environment variable values. These are INFURA_API_KEY, USER_API_KEY, USER_API_SECRET You have to get the INFURA_API_KEY by creating an account on https://infura.io/ and other keys and secrets by following this Textile hub guide. But you may use the below values by pasting them on an .env file on the empty directory:

INFURA_API_KEY = c0201f3cd3894e30b62af4bb542b5779
USER_API_KEY = btaodxt3w25zr7okup6bi5e6jpu
USER_API_SECRET = bnl7fxhtehrcrubpy3vj5zlnpzpywmbusxdi4bbq

(These keys use basic free plans, so, do not use them for any other purpose)

safient safien worker --network testnet

When the above command is run for the first time, this will prompt you to name the worker and provide an email address (used for notification but you may provide a dummy value to skip this).

That’s it! ✔️ You are now running a Safient node and are officially a Safient guardian 💂‍♀️. Your node will silently listen to any safes assigned to you and help the beneficiary recover them at the right time.

You may also run this command in a service to run them in the background. We will soon be supporting docker.

What next?

Currently, we support interacting with the protocol using the same CLI package to create, claim, recover the safes. And we are working hard to showcase our community edition so that anyone can use Safient with ease. Since our protocol and implementations are early, there may be possible security or other vulnerabilities. So, we strongly advise against storing any critical data while interacting with our protocol.

Check out our documentation to know more about how to get started with CLI commands to interact with the protocol.

⚠️ DISCLAIMER: Our protocol and SDK implementations used in the testnet environment are still under rapid development and haven’t been audited. So, we request you not to use it for any critical data or crypto-asset recovery.

We are just getting started and would love to interact with anyone willing to contribute and provide feedback. Reach us on Twitter and Discord to know more about Safient.

A few more resources to learn more about Safient:

Documentation: https://docs.safient.io

Resources and roadmap: https://resources.safient.io

GitHub: https://github.com/safient

Twitter: https://twitter.com/safientio

--

--