Pages:
Author

Topic: [ANN][STEEM][POW] - An experimental Proof of Work blockchain - page 7. (Read 10436 times)

member
Activity: 70
Merit: 10
I'll be able to change everything!
Also for the wif format, is this dumpprivkey format ("L...") or bitcoin wif ("5...") ?


Bitcoin: "5...", what is your account name?

FYI: there is a wallet that gets built, cli_wallet.  

./cli_wallet and will connect to ./steemd *if* you launch ./steemd with --rpc-endpoint
member
Activity: 98
Merit: 10
Also for the wif format, is this dumpprivkey format ("L...") or bitcoin wif ("5...") ?
sr. member
Activity: 441
Merit: 250
Bigboss
We spent months working on the code, our only advantage is our knowledge of the code. If you wish to know what Steem is all about then the least you can do is read the code we wrote.
And yet you have no compiled wallets???
FAIL?
member
Activity: 98
Merit: 10
Current difficulty:  000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Most of what we are mining will be given away in the future, so what ever concerns there are about our early mining dominance will not matter in the long run.


Why not back off a little and let some miners find some blocks? I think you are getting them all.

What is your hash rate?

3472172ms th_a       witness.cpp:341               on_applied_block     ] hash rate: 19417 hps
member
Activity: 70
Merit: 10
I'll be able to change everything!
We would like to have the benefits of Proof of Work (aka mining) without the downsides such as unpredictable block production time, mining pool centralization, or the potential for recent blocks to be orphaned. The primary benefits of POW include:

1. An objective measure of quality that is expensive to forge
2. A financial incentive to optimize a useful/necessary computer algorithm
3. A distribution model that attracts tech-savvy users
4. Creation of a robust low-latency network

Unlike traditional mining, block production time is separated from the time when work is performed. When a solution is found that meets the target difficulty, a transaction is submitted the network and included by the current block producer. To be included, the POW must be derived from the current head block. The user is then added to a queue to be included in a future block production round. The target difficulty becomes a function of the queue length. A simple algorithm would require a number of leading 0 bits of a POW hash equal to the number of producers in the queue. We chose to make difficulty equal to queue length divided by 4.

With three-second block times, a POW miner needs to operate a node with minimal network latency so it can get the new head-block as quickly as possible and then submit its result to the network with enough time to propagate to the next block producer.
member
Activity: 98
Merit: 10
Current difficulty:  000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Most of what we are mining will be given away in the future, so what ever concerns there are about our early mining dominance will not matter in the long run.


Why not back off a little and let some miners find some blocks? I think you are getting them all.
member
Activity: 70
Merit: 10
I'll be able to change everything!
Current difficulty:  000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Most of what we are mining will be given away in the future, so what ever concerns there are about our early mining dominance will not matter in the long run.

Mining is very sensitive to latency due to having less than 3 seconds to receive a block, mine, and broadcast a solution.
member
Activity: 98
Merit: 10
user names should be all lower case.


What is the algo? ? ? ?


I've been mining with 8 cores and have gotten nothing in 20 blocks. Either a bunch of others figured this out real fast or you are mining with asics.


While any mining algorithm could be used, we would like to introduce a new algorithm that has several beneficial properties. The mining algorithm requires proof that the miner possess the private key for the account that will ultimately produce the block and receive the reward. The algorithm also requires the user to do an elliptic curve signature verification, the optimization of which will benefit the validation of all transactions and lower the cost of operating the network in the long run.

The algorithm:

Quote
Let HASH = a secure cryptographic hash function (SHA256 or better)
Let H        = Head Block ID
Let H2      = HASH(H+NONCE)
Let PRI      = Producer Private Key
Let PUB    = Producer Public Key
Let S        = SIGN(PRI, HASH( H ) )
Let K        = RECOVER_PUBLIC_KEY( H2, S )
Let POW  = HASH( K )

To be valid the POW must be less than the target difficulty and RECOVER_PUBLIC_KEY(H2,S) must equal PUB. The miner introduces randomness in either the selection of the NONCE or via the randomness required for elliptic curve signature generation. This, combined with the private key selection should ensure that no two miners are searching the same work space.

By starting and ending the POW with a cryptographically secure hash function we can ensure that any vulnerabilities or computational shortcuts that may exist in the RECOVER_PUBLIC_KEY algorithm or SIGN algorithm will ultimately cause the POW algorithm to revert back to a simple HASH-based POW.



Great. But what is HASH() ? ? ?


HASH() is SHA256, but the algorithm is dominated by RECOVER_PUBLIC_KEY() and SIGN() for which there is no ASIC or GPU code that I am aware of.

I would respond faster, but bitcointalk is rate limiting me to once every 6 minutes.


Cool, thanks. Now, how many cores are you mining with? Because the diff is high.
member
Activity: 70
Merit: 10
I'll be able to change everything!
user names should be all lower case.


What is the algo? ? ? ?


I've been mining with 8 cores and have gotten nothing in 20 blocks. Either a bunch of others figured this out real fast or you are mining with asics.


While any mining algorithm could be used, we would like to introduce a new algorithm that has several beneficial properties. The mining algorithm requires proof that the miner possess the private key for the account that will ultimately produce the block and receive the reward. The algorithm also requires the user to do an elliptic curve signature verification, the optimization of which will benefit the validation of all transactions and lower the cost of operating the network in the long run.

The algorithm:

Quote
Let HASH = a secure cryptographic hash function (SHA256 or better)
Let H        = Head Block ID
Let H2      = HASH(H+NONCE)
Let PRI      = Producer Private Key
Let PUB    = Producer Public Key
Let S        = SIGN(PRI, HASH( H ) )
Let K        = RECOVER_PUBLIC_KEY( H2, S )
Let POW  = HASH( K )

To be valid the POW must be less than the target difficulty and RECOVER_PUBLIC_KEY(H2,S) must equal PUB. The miner introduces randomness in either the selection of the NONCE or via the randomness required for elliptic curve signature generation. This, combined with the private key selection should ensure that no two miners are searching the same work space.

By starting and ending the POW with a cryptographically secure hash function we can ensure that any vulnerabilities or computational shortcuts that may exist in the RECOVER_PUBLIC_KEY algorithm or SIGN algorithm will ultimately cause the POW algorithm to revert back to a simple HASH-based POW.



Great. But what is HASH() ? ? ?


HASH() is SHA256, but the algorithm is dominated by RECOVER_PUBLIC_KEY() and SIGN() for which there is no ASIC or GPU code that I am aware of.

I would respond faster, but bitcointalk is rate limiting me to once every 6 minutes.
member
Activity: 98
Merit: 10
user names should be all lower case.


What is the algo? ? ? ?


I've been mining with 8 cores and have gotten nothing in 20 blocks. Either a bunch of others figured this out real fast or you are mining with asics.


While any mining algorithm could be used, we would like to introduce a new algorithm that has several beneficial properties. The mining algorithm requires proof that the miner possess the private key for the account that will ultimately produce the block and receive the reward. The algorithm also requires the user to do an elliptic curve signature verification, the optimization of which will benefit the validation of all transactions and lower the cost of operating the network in the long run.

The algorithm:

Quote
Let HASH = a secure cryptographic hash function (SHA256 or better)
Let H        = Head Block ID
Let H2      = HASH(H+NONCE)
Let PRI      = Producer Private Key
Let PUB    = Producer Public Key
Let S        = SIGN(PRI, HASH( H ) )
Let K        = RECOVER_PUBLIC_KEY( H2, S )
Let POW  = HASH( K )

To be valid the POW must be less than the target difficulty and RECOVER_PUBLIC_KEY(H2,S) must equal PUB. The miner introduces randomness in either the selection of the NONCE or via the randomness required for elliptic curve signature generation. This, combined with the private key selection should ensure that no two miners are searching the same work space.

By starting and ending the POW with a cryptographically secure hash function we can ensure that any vulnerabilities or computational shortcuts that may exist in the RECOVER_PUBLIC_KEY algorithm or SIGN algorithm will ultimately cause the POW algorithm to revert back to a simple HASH-based POW.



Great. But what is HASH() ? ? ?
member
Activity: 70
Merit: 10
I'll be able to change everything!
user names should be all lower case.


What is the algo? ? ? ?


I've been mining with 8 cores and have gotten nothing in 20 blocks. Either a bunch of others figured this out real fast or you are mining with asics.


While any mining algorithm could be used, we would like to introduce a new algorithm that has several beneficial properties. The mining algorithm requires proof that the miner possess the private key for the account that will ultimately produce the block and receive the reward. The algorithm also requires the user to do an elliptic curve signature verification, the optimization of which will benefit the validation of all transactions and lower the cost of operating the network in the long run.

The algorithm:

Quote
Let HASH = a secure cryptographic hash function (SHA256 or better)
Let H        = Head Block ID
Let H2      = HASH(H+NONCE)
Let PRI      = Producer Private Key
Let PUB    = Producer Public Key
Let S        = SIGN(PRI, HASH( H ) )
Let K        = RECOVER_PUBLIC_KEY( H2, S )
Let POW  = HASH( K )

To be valid the POW must be less than the target difficulty and RECOVER_PUBLIC_KEY(H2,S) must equal PUB. The miner introduces randomness in either the selection of the NONCE or via the randomness required for elliptic curve signature generation. This, combined with the private key selection should ensure that no two miners are searching the same work space.

By starting and ending the POW with a cryptographically secure hash function we can ensure that any vulnerabilities or computational shortcuts that may exist in the RECOVER_PUBLIC_KEY algorithm or SIGN algorithm will ultimately cause the POW algorithm to revert back to a simple HASH-based POW.
member
Activity: 98
Merit: 10
user names should be all lower case.


What is the algo? ? ? ?


I've been mining with 8 cores and have gotten nothing in 20 blocks. Either a bunch of others figured this out real fast or you are mining with asics.
member
Activity: 70
Merit: 10
I'll be able to change everything!
user names should be all lower case and less than 15 characters long.
full member
Activity: 182
Merit: 100
Steem is an experimental Proof of Work blockchain with an unproven/beta consensus algorithm.

- No Pre-mine, No ICO, No IPO
- Currency Symbol STEEM
- 1.000 STEEM block reward at launch
- Approximately 112% APR long term inflation rate

Source Code:   https://github.com/steemit/steem

Mining Starts NOW!  

We spent months working on the code, our only advantage is our knowledge of the code. If you wish to know what Steem is all about then the least you can do is read the code we wrote.

How To Mine
The mining algorithm used by Steem requires the owner to have access to the private key used by the account. This means it does not favor mining pools.
Code:
      ./steemd --miner=["accountname","${WIFPRIVATEKEY}"] --witness="accountname" --seed-node="52.38.66.234:1984"

Make sure that your accountname is unique and not already used by someone else or your proof of work might not be accepted by the blockchain.

Quote
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.



i do not get how to mine...
member
Activity: 98
Merit: 10

No pool, sources won't build. Hmmm. Reminds me of something.


It builds on OS X and Ubuntu.  


You need to read what happens to coins when the sources don't build.

https://bitcointalksearch.org/topic/annec-eclipse-ring-signatures-anonymous-tor-stealth-addresses-1378922

Wink

And what error are you getting? It is a simple cmake system.

Code:
git submodule update --init --recursive
cmake .
make

I built it.

Can you make an example of how to start the miner. I'm getting json errors.

Will any wif key do?






Code:
# ./steemd --miner='["EclipseCrypto2016","WIFKEYNUNYA"]' --witness="EclipseCrypto2016" --seed-node="52.38.66.234:1984"
179291ms th_a       main.cpp:158                  main                 ] parsing options
179291ms th_a       main.cpp:160                  main                 ] initializing node
179291ms th_a       main.cpp:162                  main                 ] initializing plugins
179292ms th_a       witness.cpp:92                plugin_initialize    ] witness plugin:  plugin_initialize() begin
179292ms th_a       witness.cpp:132               plugin_initialize    ] 4 parse_error_exception: Parse Error
Unexpected char '69' in "EclipseCrypto2016"
    {"c":69,"s":"EclipseCrypto2016"}
    th_a  json.cpp:433 variant_from_stream

    {"str":"EclipseCrypto2016"}
    th_a  json.cpp:478 from_string
179292ms th_a       main.cpp:196                  main                 ] Exiting with error:
4 parse_error_exception: Parse Error
Unexpected char '69' in "EclipseCrypto2016"
    {"c":69,"s":"EclipseCrypto2016"}
    th_a  json.cpp:433 variant_from_stream

    {"str":"EclipseCrypto2016"}
    th_a  json.cpp:478 from_string
rethrow
    {}
    th_a  witness.cpp:132 plugin_initialize
member
Activity: 70
Merit: 10
I'll be able to change everything!

No pool, sources won't build. Hmmm. Reminds me of something.


It builds on OS X and Ubuntu. 


You need to read what happens to coins when the sources don't build.

https://bitcointalksearch.org/topic/annec-eclipse-ring-signatures-anonymous-tor-stealth-addresses-1378922

Wink

And what error are you getting? It is a simple cmake system.

Code:
git submodule update --init --recursive
cmake .
make
member
Activity: 70
Merit: 10
I'll be able to change everything!

No pool, sources won't build. Hmmm. Reminds me of something.


It builds on OS X and Ubuntu. 
sr. member
Activity: 386
Merit: 250
No wallet,no miner,Dev,are you kidding? Huh
sr. member
Activity: 316
Merit: 253
It's called an instamine.  

Since people have to read the code to figure out how to use your coin and mine it, it's no different than someone releasing a coin without wallets where people have to compile from source and the developer gets to mine a ton of coins while everyone else has to either figure out how to compile the wallet or compile the wallet.

I'm sure people would love to mine and test your coin out, but your very limited ANN prevents people who are interested in the coin from getting involved.

My interpretation of instamine is when the block reward is very high at the beginning giving non-linear returns to the first block producers.  Here we get linear returns. If we get a full 24 hours with no competition then we will end up with less than 0.3% of the STEEM after a year.

 

It also means when a developer or a miner mines a coin, in the beginning, with an advantage.  Regardless of how many coins you are going to get, your limited ANN and "new" type of coin limits people from mining the coin, whereas you can mine it - an advantage.  You're "instantly mining" the coin because there is no one else who can mine the coin.

Hey, it's your coin and if you want only the smart people to be able to figure out how to mine the coin, then you can do that.  But if you want people interested in the coin and able to mine it and learn about it, then explain to people how to mine the coin and generate the wallets and they'll be much more interested in your project.  Sure, there are people who only mine a coin to make money and don't care about technology, but there are people who love the tech and would like to learn and mine.  People are just looking at this thread and saying Pass.

Maybe if you would have released the code in advance so that people could ask questions and learn, then started the blockchain and mining, things would be different.  But, you didn't decide to do that.
member
Activity: 70
Merit: 10
I'll be able to change everything!
It's called an instamine.  

Since people have to read the code to figure out how to use your coin and mine it, it's no different than someone releasing a coin without wallets where people have to compile from source and the developer gets to mine a ton of coins while everyone else has to either figure out how to compile the wallet or compile the wallet.

I'm sure people would love to mine and test your coin out, but your very limited ANN prevents people who are interested in the coin from getting involved.

My interpretation of instamine is when the block reward is very high at the beginning giving non-linear returns to the first block producers.  Here we get linear returns. If we get a full 24 hours with no competition then we will end up with less than 0.3% of the STEEM after a year.

 
Pages:
Jump to: