12.1 Testnet Testing Phase Two Ignition

Status
Not open for further replies.

eduffield

Core Developer
Mar 9, 2014
1,084
5,320
183
Hello Everyone,

I’m pleased to announce the second phase of public testnet testing for version 12.1. In phase one we’ve been working on merging upstream changes from Bitcoin into Dash-core. This included many changes to the way blocks are handled, nodes are handled and improvements to memory management and locking issues we’ve experienced.

12.1 is the first version of the software that is the hint at what everyone can expect from evolution. 12.1 can be thought of as a pre-alpha of the evolution software, where all eventual functionalities will be accessible through low level APIs, allowing users to integrate existing software and experiment with Dash before it goes completely live and is accessible through friendly interfaces.

To begin we’re going to introduce superblocks, proposals and contracts in the 12.1 software. This means that we will have mirrored the software capabilities in 12.0, with the budget system, but using a brand new decentralized governance system created purely for dash evolution.

So what can you do for Dash testing? We want users to come in and test all of the basic functionality, such as mixing coins, instantly sending monies, even creating our brand new shiny governance proposals, then sentinel superblocks. This system is completely autonomous, therefore to test it you’ll need to follow a guide to setup the masternode correctly.

Besides the many changes below, the system also uses a brand new signaling mechanism which allows the masternodes to form a collective opinion about various states of governance objects, such as funding, validity and many more. This is an extendable system which allows the network to custom design it’s own infrastructure, while only updating dashd yearly at most. This will allow quick resolution of new ideas, implementation and release without risking network security by over releasing versions of the primary network protocol.

New Software Configuration for 12.1:
  • Dash full node
  • 1000 testnet Dash (faucet)
  • Sentinel : Running from crontab
  • MySQL

Functional changes to 12.1 since our last testnet session:
  • Sentinel system which uses hourly superblocks on testnet
  • Masternode sync improvements
  • PrivateSend to mix with 3 participants on testnet for a more realistic testnet phase
  • Change extended key version bytes to BIP32
  • Support for transaction lock ZMQ messages to allow event based instant transaction support for easier implementation of external hardware/software systems
  • Update DNS seeds
  • Autobackup enhancements
  • Merged bitcoin upstream v12
  • New CLI for proposals through Sentinel

Want to help us test and launch 12.1? Simply follow the guides and test operations that we have below, then bring up any issues you find here.

Sentinel 12.1 Documentation:

https://docs.google.com/document/d/1g8vA4sGnQVsK7YQfEoQyCrZs_7kfHMW_43m8K7vZOdQ/edit

Dash Daemon + Sentinel Installation/Usage Documentation:
https://github.com/dashpay/sentinel/blob/master/README.md


Latest builds (v0.12.1.0-b9bd116) of v0.12.1.x branch

Linux --> https://bamboo.dash.org/browse/DASHL-DEV/latestSuccessful/artifact/JOB1/gitian-linux-dash-dist/
Windows --> https://bamboo.dash.org/browse/DASHW-DEV/latestSuccessful/artifact/JOB1/gitian-win-dash-dist/
MacOS X --> https://bamboo.dash.org/browse/DASHM-DEV/latestSuccessful/artifact/JOB1/gitian-osx-dash-dist/
Raspberry --> https://bamboo.dash.org/browse/DASHP-DEV/latestSuccessful/artifact/JOB1/gitian-RPi2-dash-dist/

Update.sh, put this in .dashcore to add automatic updating
https://gist.github.com/evan82/1ee7b15945a24b46eea74236cdff333f

Testnet tools (explorers, faucets, pools) --> https://www.dash.org/forum/threads/testnet-tools-resources.1768/

--

Thanks so much to everyone who helped with 12.1! This is been one of the largest undertakings of my professional career and it's amazing to work with such wonderful people. Thanks to Timothy, Udjin, Holger, Nathan, Andy, Node40, Tyler, AcidBurn.

edit by flare: updated CI links
edit by tungfa: Sentinel Installation
edit by flare: Fix Sentinel repo link
 
Last edited by a moderator:

AndyDark

Well-known Member
Sep 10, 2014
353
705
163
Exciting Stuff! Will it launch live shortly after?
We need to test the new governance system thoroughly so no rush I think.

automated setup process (using Docker) and a new proposal generator will be released later today
 
  • Like
Reactions: bhkien

qwizzie

Well-known Member
Aug 6, 2014
1,661
799
183
v0.12.1.0-b9bd116
/Dash Core:0.12.1/
Windows 10, 64bit OS

I got a "synchronization failed" message during sync while it was at 25%, and then despite that error message it just continued syncing and is now fully synced. I synced from scratch by the way
(deleted everything but my wallet and dash.conf)

Edit : i got the same sync error on my second windows 64 wallet, syncing from scratch..... making it reproduceable.

 
Last edited:

MangledBlue

Well-known Member
Jun 28, 2014
1,246
678
183
USA
yhoExHfgoDzYxQ71sYiAZ1C6ufNnZd38aq

Play Ping Pong?
Post your tDASH addy to receive - send some to the above....
 
  • Like
Reactions: tungfa

crowning

Well-known Member
May 29, 2014
1,415
1,997
183
Alpha Centauri Bc
We'll do some more work on validation and styles but it's good to go for now.
I like it, but I don't like the fact that I have to enable JavaScript for code.jquery.com, ajax.googleapis.com, maxcdn.bootstrapcdn.com and your site to create a simple proposal command.

Especially Google already knows way to much about everyone...
 
  • Like
Reactions: AjM

acidburn

Active Member
May 26, 2014
467
175
113
I like it, but I don't like the fact that I have to enable JavaScript for code.jquery.com, ajax.googleapis.com, maxcdn.bootstrapcdn.com and your site to create a simple proposal command.

Especially Google already knows way to much about everyone...
these can be easily changed by downloading and including the source into the app.
 

BrainShutdown

Well-known Member
Foundation Member
Apr 8, 2014
149
71
188
Code:
Traceback (most recent call last):
  File "scripts/crontab.py", line 126, in <module>
    check_object_validity(dashd)
  File "scripts/crontab.py", line 90, in check_object_validity
    obj.vote_validity(dashd)
  File "scripts/../lib/governance_class.py", line 26, in vote_validity
    if self.is_valid(dashd):
  File "scripts/../lib/models.py", line 239, in is_valid
    if not dashlib.is_valid_dash_address(self.payment_address, config.network):
  File "scripts/../lib/dashlib.py", line 29, in is_valid_dash_address
    decoded = base58.b58decode_chk(address)
  File "scripts/../lib/base58.py", line 81, in b58decode_chk
    result = b58decode(v)
  File "scripts/../lib/base58.py", line 58, in b58decode
    result = chr(long_value) + result
OverflowError: Python int too large to convert to C long
Stuck in this step

Code:
cd /home/YOURUSERNAME/.dashcore/sentinel && venv/bin/python scripts/crontab.py
Ubuntu 14.04 x64
Any tips? :)

Thanks
 

AndyDark

Well-known Member
Sep 10, 2014
353
705
163
Code:
Traceback (most recent call last):
  File "scripts/crontab.py", line 126, in <module>
    check_object_validity(dashd)
  File "scripts/crontab.py", line 90, in check_object_validity
    obj.vote_validity(dashd)
  File "scripts/../lib/governance_class.py", line 26, in vote_validity
    if self.is_valid(dashd):
  File "scripts/../lib/models.py", line 239, in is_valid
    if not dashlib.is_valid_dash_address(self.payment_address, config.network):
  File "scripts/../lib/dashlib.py", line 29, in is_valid_dash_address
    decoded = base58.b58decode_chk(address)
  File "scripts/../lib/base58.py", line 81, in b58decode_chk
    result = b58decode(v)
  File "scripts/../lib/base58.py", line 58, in b58decode
    result = chr(long_value) + result
OverflowError: Python int too large to convert to C long
Stuck in this step

Code:
cd /home/YOURUSERNAME/.dashcore/sentinel && venv/bin/python scripts/crontab.py
Ubuntu 14.04 x64
Any tips? :)

Thanks
yah it's an invalid payment address string in one of the proposals breaking a base58 check...we will patch it shortly
 

qwizzie

Well-known Member
Aug 6, 2014
1,661
799
183
Hi all
Just started mixing 1000 coins 8 rounds
:)
So how is the mixing going ? i come across a lot of session timed out and unknown response messages...

Also something to keep in mind while mixing : it will now need to mix with three users instead of just two users on Testnet.
 
Last edited:

nmarley

Administrator
Dash Core Team
Moderator
Jun 28, 2014
366
424
133
Code:
Traceback (most recent call last):
  File "scripts/crontab.py", line 126, in <module>
    check_object_validity(dashd)
  File "scripts/crontab.py", line 90, in check_object_validity
    obj.vote_validity(dashd)
  File "scripts/../lib/governance_class.py", line 26, in vote_validity
    if self.is_valid(dashd):
  File "scripts/../lib/models.py", line 239, in is_valid
    if not dashlib.is_valid_dash_address(self.payment_address, config.network):
  File "scripts/../lib/dashlib.py", line 29, in is_valid_dash_address
    decoded = base58.b58decode_chk(address)
  File "scripts/../lib/base58.py", line 81, in b58decode_chk
    result = b58decode(v)
  File "scripts/../lib/base58.py", line 58, in b58decode
    result = chr(long_value) + result
OverflowError: Python int too large to convert to C long
Stuck in this step

Code:
cd /home/YOURUSERNAME/.dashcore/sentinel && venv/bin/python scripts/crontab.py
Ubuntu 14.04 x64
Any tips? :)

Thanks
Thanks for the bug report, and sorry about that. Should be fixed in the most current version. Can you try again and post your results?
 
  • Like
Reactions: BrainShutdown

dark-sailor

Member
May 9, 2014
80
31
58
So how is the mixing going ? i come across a lot of session timed out and unknown response messages...

Also something to keep in mind while mixing : it will now need to mix with three users instead of just two users on Testnet.
Seems to have stopped for the last 30 minutes ill keep it going for a bit longer. I managed 1 round on 2 x 1 DASH.
I am also not seeing any status messages on the overview page to see what’s happening. (Just found the tab in options to turn this on)

Ha just had another PrivateSend Denominate come through 40 minutes between
 
Last edited:
  • Like
Reactions: halso and qwizzie

fible1

Well-known Member
Dash Core Team
Masternode Owner/Operator
May 11, 2014
710
722
163
When will there be a GUI for this version? CLI is a pain in the butt :).

Pablo.
 

eduffield

Core Developer
Mar 9, 2014
1,084
5,320
183
Small Update

I'm going to be leading our testing of the sentinel platform by creating a real world simulation of what we're actually going to use the superblock system for. This basically comes down to needing to ensure that we can process more than 100 proposals that are generated from the community, so we're going to use real data for this process. The problem is basically herding cats at this point, it's hard to get everything humming with so many people involved.

The solution? I'm thinking we should add a small feature to sentinel, vote mirroring. The operator should be able to pick another trusted masternode that they would like to base their votes off of, then they will mirror all of these.

On mainnet, the feature could be expanded to allow us to enable an idea we've had for awhile, which is to create small committees which review proposals and then vote internally, then signal their decision to the network. We could have multiple independent committees of this kind doing research, even completely disagreeing at times. Masternode operators would then decide how much time they think they can spend on research and determine if they would like to do the research themselves, or trust one of these elected bodies to do the research on their behalf. Just an idea :)

I am still working the list of proposals to test and other requirements for making sure 12.1 is rock solid. More soon...
 

qwizzie

Well-known Member
Aug 6, 2014
1,661
799
183
Small Update

I'm going to be leading our testing of the sentinel platform by creating a real world simulation of what we're actually going to use the superblock system for. This basically comes down to needing to ensure that we can process more than 100 proposals that are generated from the community, so we're going to use real data for this process. The problem is basically herding cats at this point, it's hard to get everything humming with so many people involved.

The solution? I'm thinking we should add a small feature to sentinel, vote mirroring. The operator should be able to pick another trusted masternode that they would like to base their votes off of, then they will mirror all of these.

On mainnet, the feature could be expanded to allow us to enable an idea we've had for awhile, which is to create small committees which review proposals and then vote internally, then signal their decision to the network. We could have multiple independent committees of this kind doing research, even completely disagreeing at times. Masternode operators would then decide how much time they think they can spend on research and determine if they would like to do the research themselves, or trust one of these elected bodies to do the research on their behalf. Just an idea :)

I am still working the list of proposals to test and other requirements for making sure 12.1 is rock solid. More soon...
With regards to vote mirroring :

For Testnet that could be a good method to mass-test and analyse the 12.1 proposal system, so i'm fine with that.
For Mainnet (through the use of small committees) i have reservations about this and feel this could impact voting behaviour in perhaps unexspected or unforeseen ways
 

halso

Active Member
Apr 27, 2016
439
235
113
Sydney, Australia
Hi @eduffield, the committee system sounds a bit over engineered.

I find most proposals arent that complicated. And proposals that im not sure about, i tend to read the views of other community members i trust and go with them.

That being said, its always great to experiment. And would defo give it a go on testnet.
 
  • Like
Reactions: Comodore

eduffield

Core Developer
Mar 9, 2014
1,084
5,320
183
I suppose I misspoke, I don't mean we should create a bunch of committees now while the network is small. However, we're in the beginning stages of making a very complex and sophisticated software platform for money, if successful it will be of the valuation of a bank. That means we're going to be managing an awful lot of money and the projects will just continually grow in complexity until we do have problems. This is a solution to that future problem, not merely a hammer in search of a nail.
 

fible1

Well-known Member
Dash Core Team
Masternode Owner/Operator
May 11, 2014
710
722
163
@eduffield I had to redo my comments in response to your clarification. What you are saying makes more sense now, but I would suggest we leave this committee discussion up to when it is needed due to the actual scale of the project and table it for now. Further, I feel like there is wisdom in crowd sourcing and I'm not convinced of this idea even at an enterprise level, this whole committee thing is open to manipulation and abuse. You engineered and excellent system of incentives with masternodes, if we reach a certain level, masternode owners will be able to dedicate resources to vetting more complex proposals as to their interest. Lets see where it goes first before centralizing is what I'm saying.

Pablo.
 

GNULinuxGuy

Member
Jul 22, 2014
112
68
78
Dash Address
XjkXfrYTSvdYe4738DtNVX5XfUz7qU9HnY
Ran the voting script from my dedicated tMN running v0.12.1.0-b9bd116. Returned 4 "Governance object not found!" failures, but also many successes.

tMN has been running for close to 48 hours. Quick scanning of the debug.log indicates things are generally fairly healthy. About to start testing some mixing from other nodes now. :)
 
Status
Not open for further replies.