Run separate permitionless network with custom token name (co-chain)

Hi,

Im considering to switch from Ethereum POA infrastructure to Algorand PPOS in already running project because of scalability problems.

I tried private Algo net, and read about co-chains, but have some concerns:

  1. Is this possible to run a separate permitionless PPOS Algo network with a custom token name???
  2. Is co-chain tech production ready? If not when to expect it?
  3. What is real world tps to expect for such settings?

Thank you in advance for any guidance here!

Hi @pavelkrolevets,

Welcome to the Algorand forum!

  1. If you want to have your own custom token in a permissionless setting, the simplest solution is to use ASA (Algorand Standard Assets) over Algorand MainNet (for production) or TestNet (for testing). If you know ERC-20 tokens on Etherum, ASA can do everything ERC-20 can do, but are much easier to use and more importantly benefits of all the advantages of the Algorand blockchain technology, including high TPS and low fees. To get started very quickly, you can create your own token in a couple of click on TestNet using https://algodesk.io/. For details, read https://developer.algorand.org/docs/features/asa/
  2. Co-chain technology is not yet available. However, note that:
    a. In practice, co-chain will most of the time be private chains (the technology allows for permissionless since it’s the same technology as for the Algorand MainNet but to actually achieve permissionless, you would need to get many participants running participation nodes and relays for your custom tokens - these nodes would not be the same as the Algorand MainNet nodes). Thus, if you want a permissionless chain, you need to use ASA over Algorand MainNet or TestNet. (see point above)
    b. If you just want to use co-chains as a private network without interaction with MainNet, it is already possible to do it now. See https://developer.algorand.org/tutorials/create-private-network/ Co-chains just facilitate the connection between the co-chain and Algorand MainNet.
  3. The real TPS achieved if you use Algorand MainNet / TestNet is around 1,000. It is shared however with all the Algorand MainNet / TestNet users. If you use your own co-chain / private chain, you may be able to increase the TPS by tweaking the protocol parameters such as the maximum size of the block or some waiting times in the protocol (if all your nodes sit close to each other and are connected with low latency network.).

Hi @fabrice,

Thank you a lot for a thorough explanation! Algorand blockchain tech looks very promising. I want to start my own PPOS network based on Algorand and allow anyone interested to join by staking our tokens, also later I would love to interoperate with the Algorand mainnet. Therefore I have some questions left and very appreciate if you can help me with it:

  1. Does Algorand private network (https://developer.algorand.org/tutorials/create-private-network/) have PPOS concensus?
  2. Is it possible to change Algorand native token name in the code (algos -> someTokenName)?
  3. Is it possible to change transaction fees for a private Algo network?

Thank you a lot! Looking forward to build something amazing on Algorand tech!

Hi @pavelkrolevets

  1. Yes
  2. If you are asking if you can transact ASA tokens in the same way one transacts Algos, Yes.
  3. Transaction fees is a parameter to all transaction calls.

For more examples: See one of our tutorials … https://developer.algorand.org/tutorials/create-asset-python/ … Not sure what language you are planning on using but we have SDKs and tutorials for Python, Java, JavaScript and Go, The community has a ,NET SDK as well with ASA examples. Note: We are in the process of of updating the tutorials to V2 … the Feature pages that @fabrice points to above, are all V2. The V2 code samples For ASA are located here: https://github.com/algorand/docs/tree/master/examples/assets/v2 Tutorials will be updated soon to V2.

Hi @pavelkrolevets

To complement @rfustino’s response:

  1. That’s the same as the Algorand MainNet protocol.
  2. The name of the currency used to pay fees and to participate in the PPOS, the “Algo”, appear in a lot of places in the source code. I am not sure there is an easy way to change it.
  3. I think you should be able to change the minimum fee there: https://github.com/algorand/go-algorand/blob/1424855ad2b5f6755ff3feba7e419ee06f2493da/config/consensus.go#L464 and recompile everything. I have never tried though.

Hi @fabrice @rfustino,

Amazing! Thank you for the answers, now its pretty much everything clear.

I set up a PPOS network on 3 separate servers. One thing would be helpful if you mention in docs about a private network, that to connect nodes to the relay there is a port to look at algod-listen.net in the relay node folder, and -p http://realya_ip:relay_port as a parameter for a regular node which is trying to connect to remote relay.

  1. I changed native token name in the code (there is a Jetbrains IDEA feature to change every var name in the code very fast) and it compiles well and seems working without any problem.

  2. Ill try to play with the fees. Thank you for pointing me there.

Just keep in mind, with a forked chain like that, using its own minted XXX coin, I suspect you won’t be able to participate as a true co-chain (transferring to/from Algorand mainnet).
If you just want to run an independent, private Algorand-based chain, then have at it.

Thank you for a valuable point. I do want to participate as a co-chain. Will think through it.