UPDATE #52: Peercoin Roadmap for 2021

The Peercoin Team and members of the Foundation held an anual meeting this month to lay out Peercoin’s Development Roadmap for 2021. Since Peercoin’s codebase will soon be caught up with Bitcoin, we decided it was time to focus on some items which are outside core development. These items can be found below under the heading Non-Core Development.

Peercoin 2021 Roadmap

v0.10

Codename: Scarab

This release keeps the v0.9 protocol and moves to a new and updated codebase.

Release Target:

  • April 2021

Changes:

  • New codebase (based on bitcoin-core 0.20.1).

v0.11

Codename: Tardigrade

This release builds on the v0.10 codebase and delivers a number of long desired changes like cold minting and removal of the transaction timestamp, which expands the amount of crypto tech Peercoin is compatible with, such as DeFi, DEXes, etc…

Changes:

  • RFC-0012 (Cold minting)
  • RFC-0014 (Removal of the transaction timestamp for non-coinstake transactions)
  • RFC-0020 (Proof-of-Work Difficulty on PoS Blocks)

Note:

  • GUI for user interaction with cold/multisig minting feature will be developed sometime after v0.11 is released.

Non-Core Development

Peercoin <-> Ethereum Bridge

In order to integrate with the DeFi ecosystem on Ethereum, development of cross-chain communication (bridges) to Ethereum is required. The end goal is inclusion of Peercoin in a multitude of AMM contracts on Ethereum, like Uniswap and its clones.

Android/iOS Mobile Apps

While a number of 3rd party mobile wallets do support Peercoin, there is a growing concern that such services could hold the community in ransom and ask for payments in order to keep Peercoin integrated with their services. Members of the Peercoin community have proposed a simple and light architecture for a mobile wallet based on Flutter technology. The codename is Vesta, and more details will be released soon.

Rosetta Integration

Coinbase initially developed Rosetta as the middleware used to integrate blockchains into its platform securely and painlessly. Unified Rosetta interface makes it easier to ensure compatibility with exchanges that use Rosetta, and can dramatically speed up the time it takes exchanges to integrate with new blockchains. Overall, having such a tool ported to Peercoin will make integration of Peercoin in various services far easier.


Donate

Please remember that these developments are sponsored by the Peercoin Foundation, which in turn is sponsored by generous community donations. PPC, BTC, and Fiat can be donated at peercoin.net/foundation.

17 Likes

thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks

and thanks for the update. Great to see ongoing development. Aside from development, I’d suggest using some of foundation’s reserves on marketing campaigns/PR to drive more awareness. Eco-friendly (PPC) vs needless energy consumption (BTC)

1 Like

Absolutely, but Foundation’s reserves are not big as you maybe imagine them and will hardly cover anything marketing wise. Best marketing (at the moment) is word of mouth and education.

1 Like

The biggest struggle I’ve had with Peercoin is finding official low-level documentation for the protocol. I’ve mostly had to piece it together from forums like this, Reddit, news articles, etc, and my main concern is that most people will not be that ambitious.

One of the great things about Bitcoin is there’s massive amounts of discussion and freely available information about it - both low-level and ELI5. Compare the Wikipedia entries for Bitcoin and Peercoin to see a poetic example of exactly this.

So perhaps a campaign to expand technical documentation would be far cheaper and just as effective? Just a suggestion - I’m certainly in no position to offer any technical services or to criticize.

isnt https://docs.peercoin.net/ accessible enough?

I agree.

Unfortunately, wiki is censoring us. There have been several attempts to push new content to wiki but it was rejected/deleted each time.

Anyway, yes I agree. Something should be done about it.

1 Like

It’s accessible, sure, but it’s far from comprehensive.

Take the entry on Proof of Stake, which is undoubtedly going to be the entry the majority of curious people are interested in. After reading it, I have more questions than answers.

Minting, as it is called in Peercoin to make a proof-of-stake block, is based on metrics of an unspent transaction. If we take a look at the number one spot of the rich list, transaction c7293fc60c80bdcc374775d1f0734e0766465b905bae1a312fe487793be3b8f7 has among others the following characteristics:

  • The transaction appeared in block 376161 at timestamp 1531750952 (Unix time).
  • The transaction in the block has an offset of 383 bytes. It is the third transaction in the block. The size of the first two transactions in the block are respectively 78 and 224 bytes.

What’s an offset?

  • The transaction timestamp is 1531750624.
  • The second recipient (index 1) received 1786301.06651300 Peercoins which, at the moment, is still unspent.

These metrics, along with two more data points serves as a basis to calculate a hash for POS minting:

  • a future timestamp X (in Unix time notation) in which the stake could win;
  • a block modifier that was set by the network 1830080 seconds (~21 days) earlier than X.

How far in the future? How is this determined? How does the network agree on it?

Every 6 hours the network calculates a new block modifier to be used for POS minting.

Ditto.

The win in proof-of-stake minting, the calculated hash is compared to the current difficulty minus the coinage. The chances of finding a stake therefor improves when either the coin age increases or when the difficulty of the network decreases.

What’s the formula?

After reading this I still don’t really know how Proof of Stake works. Because I already understand how Bitcoin works (which many readers might not) I would assume that a unique hash is created using all of the above information. I would also assume that every second (which it doesn’t state in the article, but I’ve read elsewhere) that hash is tested against a target (determined by network difficulty) plus the accumulated coin age. If my hash is smaller, I win.

Not only did I have to bring in a bunch of outside knowledge to make these assumptions, but I still have some remaining questions:

If I’m just unlucky and my transaction output hashes to a large value, do I have to wait 6 hours for the network to calculate a new block modifier? And, again, how is that modifier determined and agreed upon?

As someone who likes to understand things on a low level, the reality is that the only comprehensive option available for Peercoin is diving through the source code, which takes a long time and will certainly turn off a lot of people. And the sort of people it will turn off are the tech experts that would do the most to drive future adoption.

Just my 2c.

1 Like

Perfect person to work on a project like that would be Nagalim, if he is interested. He has a high level understanding of Peercoin’s protocol and writes a lot of our RFCs.

1 Like

I’d argue that documentation is the job of all of us, it can’t really be a one and done. It’s an effort, one step at a time, but critical feedback like what @Tom_Thomas offers is good and useful, if he could document these kinds of specific instances where documentation is lacking, maybe in it’s own thread, it would be a great help.

@Tom_Thomas were you hoping for an additional resource, or do you think that the peercoin university is a good format for the kind of low level documentation you’re looking for?

3 Likes

Peercoin University can get to some pretty advanced topics at times, but I tried to make sure people learned the basics first before they got to the more complicated information.

When it comes to how the protocol functions and the terminology used, I’m not sure it would be a good fit for university, unless it had its own section near the end for advanced users and blockchain experts.

For example, nowhere in University did I explain what an input or output is because I didn’t feel it was necessary to understand Peercoin. For a technical layout of the protocol though, stuff like that might be necessary.

1 Like

Hi Nagalim,

I think the docs.peercoin.net resource is a perfect place for it, the documentation just needs to be a lot more comprehensive. It also needs to be written without the assumption (as it seems to have now) that the person reading it already has a basic understanding of crypto currency protocols.

As a technical person, I would like to see an in-depth explanation of the proof of stake protocol with direct code snippets. Where in the code is the block modifier generated and agreed upon? Exactly how is that structured? What’s the code look like for determining coin age? Etc.

The good news is that since Peercoin is based on Bitcoin, a lot of the core protocol documentation can be linked to outside articles. The main focus, I think, should be the custom PoS stuff that Peercoin has pioneered, and why it is such a drastic improvement over Bitcoin.

2 Likes

I wrote this part. I too wanted to know what the formula was.
I think imho reading the code is shorter than the actual formula in words.

If you want the nuts and bolts I suggest to take a look at FindstakeNet/Mint.cs at main · jointhepartypooper/FindstakeNet · GitHub → public static CheckStakeResult CheckStakeKernelHash(MintTemplate template, UInt32 txTime, UInt64 stakeModifier) which is coded in C#

2 Likes

a block is a block of bits and bytes, to get the third transaction in that block you need to know how many bytes to skip, that is called an offset

1 Like