After three months of intense development, we are very proud to release the v0.9 of MESG Core! This version is a huge step towards the long-term vision with the release of the beta version of the decentralized marketplace.
Marketplace beta version
This beta version of the MESG Marketplace lets users buy and sell access to modular application components for a limited period of time.
The Marketplace is fully decentralized as it runs on Ethereum with a custom smart contract and uses the MESG Token for purchasing access to services. The source code of the services are also decentralized as they are published on IPFS.
Find and deploy services from the Marketplace website
Go to marketplace.mesg.com to browse the available services. You can find services’ documentation, API, offers and versions.
Now let’s deploy the service email-sengrid.
Go to its dedicated page, click on the button “Get this service”, copy the deploy command line, and execute it in a terminal on your local computer (that already runs MESG Core).
Your terminal should look this:
➜ ~ mesg-core service deploy mesg://marketplace/service/8mcRi836QZZmYAvt2o7RgHdUjsvGsdnPdSHVBq25jjyB ✔ Image built with success ✔ Service deployed with sid email-sendgrid and hash CGRuEJahcrEQoFNV6nywDAx22CPifyTi1CmaoLVVj6gk To start it, run the command: mesg-core service start email-sendgrid
Et voila 🍾
You have deployed a service from the decentralized MESG Marketplace!
Publish your services and earn tokens
You can also publish any of your service on the Marketplace.
Setup the wallet
To publish a service, first you need to setup your wallet and transfer some Ether into it to pay for the transaction fee.
- To create your wallet, execute:
mesg-core wallet create
Enter a desired passphrase and hit enter. You should get a new account with an address like
- Backup the passphrase and the account itself by running:
mesg-core wallet export 0x87a3e7de89881e2336c128d2b5c0f227885826d1
0x87a3e7de89881e2336c128d2b5c0f227885826d1 by the account’s address created during the previous command. Enter the passphrase and hit enter.
Save the outputted JSON in a secured place. You may need it later to import it and not lose access to your tokens.
- Transfer some Ether to your address to pay for transaction fees. I recommend to transfer 0.1 ETH.
Publish a service
Now that your wallet is ready, let’s publish a service.
Simply execute the following command:
mesg-core marketplace publish PATH_TO_THE_SERVICE
Answer the questions, wait for the source code to be published on IPFS, wait for the Ethereum transaction to get mined and it should be done!
Click on the URL to display your service on the marketplace website.
Create an offer
Now that your service is published, you need to create an offer to authorize other users to purchase it. You need to specify a price in MESG Tokens and a duration in seconds. You can set the price to 0 if you want to share your service for free.
Execute the following command to create an offer:
mesg-core marketplace create-offer SERVICE_SID
SERVICE_SID by the service’s sid returned by the command
Go back to the website or follow the link displayed by the command to see that your service has now an offer!
Congratulations, you’ve fully published a service on the MESG Marketplace!
Of course, we also update the docs website to add a guide about the Marketplace.
Other notable changes:
Deterministic service’s hash
Another big step towards the decentralized network is the calculation of a deterministic service’s hash. Now, any deployment of the same service will return the exact same hash! This was not an easy task as services are using Docker for containerization and Docker doesn’t provide a deterministic environment, thus a deterministic hash.
The solution we implemented is to create an hash based on source files, with only the user’s file permissions as the header, and the overridden environment variables that could change the service’s behavior. The solution seems easy but took a lot of research as file headers contain a lot of required information that are specific to the host computer. If you want to learn more about this, you can read this forum post: Service's hash.
Deploy services from tarball
Deployment from tarball is now possible. Enter the URL to the tarball in the commands
service dev and
mesg-core service deploy https://api.github.com/repos/mesg-foundation/service-ethereum/tarball/master
Start and stop multiple services
service start and
service stop now accept multiple SIDs or hashes as arguments
mesg-core service start com.mesg.ethereum com.mesg.ethereum.erc20 mesg-core service stop com.mesg.ethereum com.mesg.ethereum.erc20
Color in Core logs
Core can be started with the flag
--log-force-colors to force the colorization of its logs.
mesg-core start --log-force-colors
Fixed stream disconnection after inactivity
We finally fixed the automatic disconnection of a stream after a period of inactivity!
Fixed Go services and CLI connection to Core
v0.8 introduced a bug where services in Go and the CLI were pinging the Core too often in order to prevent the connection to be dropped by Docker. The time between pings was too short and was making the Core to kill the connection for spam reason.
This version fixes this bug by using a longer time between pings
To update to the latest version, follow the installation process on the documentation