Symbol Launch Discussion Topic (3/3) - Snapshot Block Height

Symbol Launch Discussion Topic (3/3) - Snapshot Block Height

Hi all,

This is the third of three discussion topics we are opening this week. The intention of this post is to gather input, discussion, opinions, questions etc about the approach to selecting a snapshot block height, communication and potential timings etc

As we draw closer to Symbol launch, there is a key topic that we need to decide on as a community - the Snapshot Block Height that will be used as a cut off for the allocation of XYM tokens for each XEM token held in an account, on a 1:1 basis.

As per the original plan, published in May, we were expecting this block to occur somewhere in the 03 December 2020 and 16 Dec 2020.

Now that we are further through development and testnet, this looks likely to be toward the end of that range and is now more likely to be between 14th - 17th Dec. The exact timing is still contingent upon a successful Testnet exit and sign off by the Core Devs, Testers, NGL etc. But we are progressing in the right direction at this time.

This leaves us with a conversation on how best to decide the height, what to communicate, how close to make it to launch etc.

The below is an outline of a few options, if there are others we haven’t thought of, please add them below. Some of these will appeal to some people, others to other people. There is unlikely to be a single approach that appeals to everyone but it’s a healthy discussion to have. I have tried to add some pros and cons to each. The principle requirements we are trying to meet with this approach are:

  • A clear and transparent approach to select the block height
  • Equal knowledge about the height by everyone
  • Ability for exchanges and other third parties to plan for the snapshot vs launch height
  • To minimise where possible any dumping of XEM in the period between Snapshot and Launch so that both chains have as a smooth conditions as possible post snapshot

For context, the process for launch is expected to work something similarly to the below:

  • In the last 2-3 weeks of Testnet, the Core Devs run private nodes and start the public Symbol network and chain with a dummy genesis block
  • Smoke testing occurs on the above and multiple network resets occur to test the creation and re-creation of the genesis block
  • A final reset occurs as close as practical after the snapshot block height
  • Subject to final sanity testing, the chain details are release publicly to allow other nodes to join

At this time, point 3 is likely to take 2-4 hours at a technical level due to extraction of the balances from NIS1 at a given block height, transformation into a genesis block and the reset and synchronisation etc. Early indications from some exchanges are they may freeze trading of XEM (and withdrawals/deposits) over this period while they enable Symbol OpSec processes, listings, markets etc. We are trying to understand the timing preference of the third parties in relation to this as well at this time but do not have a concrete answer thus far.

Option 1: Random selection of a height by code at launch time

In this option the extraction routine from NIS1 would select at random between an upper and lower block height in a range. The balances at that height would be extracted and pushed into the genesis block. The code used to make the random selection can be published openly for critique, review etc. The actual height could be communicated as part of the launch announcement, github commit etc

Pros:

  • The actual height is not known ahead of time and is selected from within a known range that can be communicated publicly so everyone has the same knowledge
  • Holders are incentivised to hold until the end of the range, or the launch communication for fear of missing out if they move/trade the XEM, likely to minimise any selling between snapshot block and launch information
  • No-one except the person(s) running the code for the final reset knows the block height, in practice this is likely to be only the Core Devs and would not include the rest of NGL.
  • Reduces the risk of trading on private information due to timescales and workloads involved around the launch routine

Cons:

  • The community will not find out the block height until launch, anyone who intends to dump quickly post snapshot will have to compete with anyone else equally and will be reliant on whichever exchange is being used to re-enable deposits, trading etc.
  • The above may also cause a surge in transactions on NIS1 if people try to move quickly onto exchanges
  • There is a possibility that node holders who are planning to dump will move balances onto exchanges early in preparation and as a result shut down NIS1 Nodes or Supernodes ahead of the launch
  • Exchanges can not plan to an exact block height and need to plan around a range instead which may result in freezing operations for longer.

Option 2: Known block selected and communicated ahead of time

In this option a given date would be selected (probably date and time in UTC) and the block at that time would become the snapshot block, or a given block is selected within the likely date range. The block is known and communicated publicly ahead of time, although is unlikely to be able to be known until 1-2 week of Dec once testing results, launch times etc are fully known. The range will be able to tighten from here all the way up to launch and incrementally get more certain. It is likely that the snapshot height will be ~12-24h before launch

Pros

  • Everyone in the community knows the date equally and can prepare for it however they intend to prepare
  • Scripts can be prepared with a known static value which may be easier to test reliably
  • There is reduced risk of anyone trading upon private information
  • Exchanges can plan to an exact block height and dont need to plan around a range instead which may result in freezing operations for less time (may not).

Cons

  • If a late issue is found on Testnet, after the blockheight has been communicated and it needs to be changed. This may be confusing for people, everyone would try and communicate this as clearly and loudly as possible but there is a risk someone sells thinking the snapshot has passed, but actually it had to be changed for some reason.
  • Any sell pressure that may occur on XEM is likely to occur before launch, this may or may not result in Exchanges freezing trading (or even delisting pairs)
  • Any drop in XEM price and position on coinmarketcap, coingecko etc may occur pre-launch

Option 3: Known block selected and exact height communicated after launch

This option is kind of a combination of the two above - a static block height would be selected ahead of time but only a very small number of people would know what it is, either Core Devs or Core Team (probably not NGL). The public communication is that it is between block X and block Y, with block Y being just after launch.

Pros

  • Holders are incentivised to hold until the end of the range, or the launch communication for fear of missing out if they move/trade the XEM, likely to minimise any selling between snapshot block and launch information
  • Reduces the risk of trading on private information except for a very small number of trusted people (there is still trust though)
  • The height is known and static so easy to test, if something goes wrong it can be re-run again after that block without any real issues

Cons

  • There is private information known by a small group of individuals so potential for trading on private information, although minimised by being highly trusted individuals
  • Exchanges can not plan to an exact block height and need to plan around a range instead which may result in freezing operations for longer.

There will no doubt be strong opinions expressed on this subject and depending on people’s intent round trading, philosophical preferences, technical knowledge etc these may well be opposing. I would ask that we try and have this conversation with respect and to listen to everyone’s positions on it.

I have deliberately tried not to express a preference in this post, or in private conversation channels - because I know the conversation needs to happen and don’t want to influence it at the start. If there are other options please try and express them clearly and in a similar format to help everyone understand them etc.

9 Likes

clear option 2

as transparent as possible

its not a game

we should not gamble

clear state upfront all facts

everyone and most important all exchanges can proper prepare

just make sure
start and allocation of XYM happens before trading of XYM starts for some countries tax laws its very helpfull if XYM have zero value the moment u get them

i would prefer if u want to avoid dumps to make deals with partner exchanges

no deposit and withdraw 7 days upfront and 7 days after snapshot for XEM and XYM pairs

partner exchanges distribute XYM based on XEM balance 7 days after snapshot in exchange database

this few simple steps would protect 7 days of after snapshot dumping

if all serious size exchanges cooperate dumporado wont happen

6 Likes

have to agree with @cryptonit here

XEM price will drop after it anyway, doesnt matter if you set a blockheight or a blockrange. if you set a range it will drop after the range is over.

after the whole confusions around optin (which many thought was the snapshot) you should stop to get more confusing. just do it the crypto way and select option 2

option 3 is not really an option, if this really gets considered i have to rethink about this whole “NEM thing” again. i came to blockchain for more transparency and if we allow insider information i have to leave because thats not what i am here for

1 Like

It MUST be option 2. It must be fair for every Nember and exchange to prepare accordingly. Options 1 and 3 will be a publicity nightmare with shouts and accusations of Insider Trading by anybody commentating. Nobody ,and that includes Core Devs have the right to unfair advantage regarding TRADING of Xem.

4 Likes

Option 2 is certainly the best for the whole community of members

2 Likes

At the moment I think option 2 might be the best option for me. Option 3 is not recommended.

If you want to curb XEM dumps as much as possible, I think it would be a good idea to publish the future development and operational plans for NIS1 as soon as possible. In short, you can raise your expectations for NIS1. But that’s still not happening to us. (e.g., making NIS1 open source)

At the very least, if the plans for NIS1 are not announced before the Symbol launch, I would be willing to sell all my XEM and recommend a dump.

2 Likes

Option 2, as its clear and transparent for everyone.

The uncertainty of the other options means some groups of people will feel its unfair and frankly these options are designed to try an stop people dumping XEM tokens, but its just trying to avoid the inevitable so the pros/cons are really a bunch of opinionated nonsense.

1 Like

First, regarding communication about the timing of the launch. I would prefer some more public comminication about the performance and issues of the testnet during the running three months testing period pre-launch. It is too silent to be good IMO. Suggestions: who is doing what to test and to monitor the testnet’s performance, how many nodes were used or were participating, were there any issues found, were issues solved and in what timeframe. What was the load and performance of the testnet and how does that compare to what we expect for the mainnet. etc. etc. And then and only then, based on the proven stability of the testnet, I would expect it would be possible to say something about the timing of the snapshot.

Second, I would recommend Option 2 Known block selected and communicated ahead of time.
As any other option could be interpreted as a bad attempt to influence the behaviour of participants in the ecosystem. We should not attempt such a thing. It is way better to allow the inevitable to happen anyway in a fast and transparent way. Nobody should try to influence the efficiency of the markets with weak attempts. Instead all efforts should be made to take clear and strong decisions that increase efficiency of the markets, no matter what the outcome will be. We should also trust the capabilities and the performance of the NIS1 network and the exchanges in the ecosystem to handle whatever load the snapshot will require.

Third, I would also like to suggest here to describe and cummunicate the snapshot block or event as a token split as in:
XEM pre-snapshot = XEM post-snapshot + XYM post-snapshot
Why? I would expect such a token split to be a non taxable event in most jurisdictions, which would be very important for everybody in the ecosystem.

5 Likes

IMO best would be option 2. And communicate snapshot height and Symbol launch weeks before the actual date. You could do a preliminary height or something like that. This gives everybody plenty of time to set up for the launch (exchanges especially).

Live with the consequences if the height has to be changed (edit: and shift the snapshot to the new date). (I guess the odds to reset the testnet by now are pretty small)

And as Garp is saying: NEM should public communication around testnet performance and issues.

2 Likes

I would vote for option 2 as well. In fact, opt-in was thought as transparent in order to satisfy the needs of everyone involved (including community) and I think option 3 should not even be considered an option.

The height is known and static so easy to test, if something goes wrong it can be re-run again after that block without any real issues

Can you explain why this has any value as to become a “pro” of the proposed option? After all snapshot block height is a number. It will not have decimals, it will not be smaller than zero. There is no other conditions about that - how does it effect testing at all?

4 Likes

I also think option 2 is the right one.

This means that everyone can see that if the testnet is shifted, the time of the snapshot also shifts.
You should just communicate that properly.

2 Likes

Cleaarly option 2.

2 Likes

It is not entirely clear to me why such simple questions are not given prompt answers.
I am sure that the relevant data is available. Or is the data that disappointing?

@DaveH
@davidshaw

("NEM Software:

Exec: Mike Sotirakos (MD), Kristy-Leigh Minehan (CTO), Antony Welfare (CCO)")

2 Likes

Thanks everyone for voicing your preferences so quickly and clearly, its been useful and there is a clear direction/preference here which is also useful, clearly Option 2 is the preferred approach.

In terms of next steps we expect to be posting a concrete plan, endorsed by Core for which date snapshot will be, when exact block will be known and what is left from here to launch so people can see what the process looks like in one place. We are aiming to do this by the end of the weekend (probably sooner).


In terms of other points, there were a couple which I will try and round up in this message as well:

@tresto

I think it would be a good idea to publish the future development and operational plans for NIS1 as soon as possible

I think this is very accurate, both for the reasons you have stated and for the general health of the chain and ecosystem. It is high on the priority list and I would expect to see this before Symbol launch.

@garp & @meyns

I would prefer some more public comminication about the performance and issues of the testnet during the running three months testing period pre-launch. It is too silent to be good IMO

This is fair and will be rectified in a separate post. A very short version on the perf tests is below but there will be more detail coming:

  • There has been a perf test(s) run on Testnet by members in the community which was useful and did find a couple of things
  • The main issue found is that dual node host joining the chain is having problem syncing the entire chain due to increased memory requirements. i.e. it currently requires 16 of RAM to join the testnet. We are currently looking into this issue to find the best solution.
  • We have been running perf tests for several months and for the last couple of testnet releases which have improved our releases and found some issues that are already resolved.
  • With the next release of the server, the Testnet will be upgraded and at that point, the QA team will scaled the Testnet out to at least 500 nodes and run further performance testing.

The feedback is taken onboard and we will try and push this more pro-actively after the next sever release so it is clear on the run into launch. There is not currently anything in the testing which is particularly problematic, the final server release in the next week or is a trigger to scale perf testing and the wallet release on the 9th will add Delegate Harvesting, Multi-sig etc load to the Testnet by making it easier to test for people.

XEM pre-snapshot = XEM post-snapshot + XYM post-snapshot

Thanks, this feedback also came from a couple of other places and has now been addressed on the websites and should be fixed in future social messaging as well. If anyone notices somewhere that has been missed please do let us know as it is now being communicated in the way suggested.

@garm

This means that everyone can see that if the testnet is shifted, the time of the snapshot also shifts.
You should just communicate that properly

We will make sure this is communicated in the announcement on how the process will work exactly. It has been flagged in another channel as well and has been understood one way by some people and another by other people so will be clarified.

4 Likes

I vote for option 2. It seems to be the fairest in my opinion.

3 Likes
1 Like

Полностью поддерживаю данную мысль!!