Pages:
Author

Topic: [ANN][2POW] Luck - A new consensus algorithm to eliminate large mining pools - page 14. (Read 6551 times)

member
Activity: 141
Merit: 41
Hello everyone
We have opened the luck core at https://github.com/luck-coin/go-luck, the core logic of 2POW can be found in consensus->tppow->tppow.go, and friends who are interested are welcome to suggest optimization opinions on 2POW, thank you.

In addition, we analyzed the latest block data. The luck of the latest blocks fluctuates around 0xbc00000, and luck is uniformly distributed in [0x0, 0xbebc200], we estimate that the number of possible independent nodes is between 200-400 (currently we are unable to give an accurate prediction model). As the number of independent nodes increases, the influence of luck on the probability of winning will also greatly increase. Increasing in luck can only be achieved by deploying more nodes, which is obviously more fair.

hero member
Activity: 813
Merit: 1944
It does work the same way as in Ethereum. It is "account-based", not "output-based". In Bitcoin, when you have two different outputs assigned to the same address, you have two separate coins and you can use them in two different transactions. In Ethereum (and Luck) you have just one address and one coin in such case. All outputs going to the same address are automatically merged, that is the way this coin works. And if you want to get transaction history, you have to look at previous blocks and get previous transactions with previous amounts. But all of them contains already spent coins, so they are not displayed on this page.

But when you click on sender or receiver address instead of transaction id, you can also view all such transactions.
sr. member
Activity: 433
Merit: 250
What is the system of coin distribution? Mining gives only a number of "coins". No transaction history at all. Seems like adding a number in mining wallet balance.

You can view all transaction history on the block explorer http://47.74.55.77/explorer/index.html.
It doesn't work properly.You can check it.
newbie
Activity: 21
Merit: 0
What is the system of coin distribution? Mining gives only a number of "coins". No transaction history at all. Seems like adding a number in mining wallet balance.

You can view all transaction history on the block explorer http://47.74.55.77/explorer/index.html.
sr. member
Activity: 433
Merit: 250
What is the system of coin distribution? Mining gives only a number of "coins". No transaction history at all. Seems like adding a number in mining wallet balance.
newbie
Activity: 29
Merit: 1
Quote
Of course You know that pools works on one mining address and one node
Yes, but it can be one mining address and one node with the highest luck selected during the first phase. And it can be shared with everyone else. And then you will have a choice: mining using your solo luck or mining using pool's luck (which will be probably higher, because for example pool will always choose the highest luck provided by all connected miners).

Quote
of course You can assign to each miner different node on different IP but You need minimum 2 cores, 4GB Ram so check price for that setting and make it x100 miners for example
Why multiplying it by 100 is necessary? Pool operators do not have to mine everything by themselves. All they have to do is validating shares received from miners and for validation you do not have to multiply everything by 100. Minimal requirements for validation would be almost the same as for seed nodes.

By the way, I can see higher and higher pool pressure in my own case. For example at the beginning I mined something around 20 coins per day. Now I am mining something around one coin per day. Sooner or later, when more people will come, it will become one coin per week, per month and then maybe even per year. And then me and other people will sooner or later create or join pools, because it will be more profitable to get some coins regularly than nothing.

Also, pools do not have to be centralized. Maybe something like P2pool will be possible on this coin, for example when each miner will add its own address into shared coinbase. It could also be based on smart contracts, something like "if you provide some header having luck higher than target, you can get some coins from this address".

Joining the pool is not profitable for administrators, or the expected profit for miners will be lower. As long as the implementation of 2POW is correct, I think there will be no mining pools.
copper member
Activity: 145
Merit: 0
Also connecting to pool means you connect to their node and once again if pool use one node it is worthless even if will use 1000 nodes and total nodes in network will be 2000 you have 50% chances but there is 2 PoW mining and luck take a part with it. I'm using 4x Vps and one node mined in first day round 70 coins and the worst one 2 do you see difference. Luck mean luck so you are sure that pool node or nodes will have more luck than other solo miners?
copper member
Activity: 145
Merit: 0
Quote
Of course You know that pools works on one mining address and one node
Yes, but it can be one mining address and one node with the highest luck selected during the first phase. And it can be shared with everyone else. And then you will have a choice: mining using your solo luck or mining using pool's luck (which will be probably higher, because for example pool will always choose the highest luck provided by all connected miners).

Quote
of course You can assign to each miner different node on different IP but You need minimum 2 cores, 4GB Ram so check price for that setting and make it x100 miners for example
Why multiplying it by 100 is necessary? Pool operators do not have to mine everything by themselves. All they have to do is validating shares received from miners and for validation you do not have to multiply everything by 100. Minimal requirements for validation would be almost the same as for seed nodes.

By the way, I can see higher and higher pool pressure in my own case. For example at the beginning I mined something around 20 coins per day. Now I am mining something around one coin per day. Sooner or later, when more people will come, it will become one coin per week, per month and then maybe even per year. And then me and other people will sooner or later create or join pools, because it will be more profitable to get some coins regularly than nothing.

Also, pools do not have to be centralized. Maybe something like P2pool will be possible on this coin, for example when each miner will add its own address into shared coinbase. It could also be based on smart contracts, something like "if you provide some header having luck higher than target, you can get some coins from this address".
This will not work mate even with shares. If you will be using one node on pool and nodes on network will be 2 you have a chance 1/2 that pool will find block even if you will have 1000 miners on pool. Did you read all about luck and read old thread?
jr. member
Activity: 72
Merit: 2
This coin is very interesting, I created a Telegram group to talk about it: https://t.me/luck_cryptocurrency
Sherlock, maybe you can add it in first page together with the discord server link.
Nice job anyway!

ok, i will add the links as well as the discard links to the first page.
Thank you!
But you have forgot to add telegram, and you misspelled Discord as Discard.
Good job!
hero member
Activity: 813
Merit: 1944
Quote
Of course You know that pools works on one mining address and one node
Yes, but it can be one mining address and one node with the highest luck selected during the first phase. And it can be shared with everyone else. And then you will have a choice: mining using your solo luck or mining using pool's luck (which will be probably higher, because for example pool will always choose the highest luck provided by all connected miners).

Quote
of course You can assign to each miner different node on different IP but You need minimum 2 cores, 4GB Ram so check price for that setting and make it x100 miners for example
Why multiplying it by 100 is necessary? Pool operators do not have to mine everything by themselves. All they have to do is validating shares received from miners and for validation you do not have to multiply everything by 100. Minimal requirements for validation would be almost the same as for seed nodes.

By the way, I can see higher and higher pool pressure in my own case. For example at the beginning I mined something around 20 coins per day. Now I am mining something around one coin per day. Sooner or later, when more people will come, it will become one coin per week, per month and then maybe even per year. And then me and other people will sooner or later create or join pools, because it will be more profitable to get some coins regularly than nothing.

Also, pools do not have to be centralized. Maybe something like P2pool will be possible on this coin, for example when each miner will add its own address into shared coinbase. It could also be based on smart contracts, something like "if you provide some header having luck higher than target, you can get some coins from this address".
copper member
Activity: 145
Merit: 0
Quote
can you show what is maxluck?
I guess that "maxluck" is the maximum luck value for all mining nodes in the whole network. It means that instead single, simple proof of work, everyone is calculating some luck and the max value is broadcasted to the network. So: the more nodes you have, the more chances are that you will hit "maxluck". And the more luck you have, the more chances you have to hit the next block.

To sum it up: in proof of work you are calculating the lowest block hash meeting the target and then you can broadcast it when you find it. In luck, you are calculating the highest luck value and then you broadcast it. So there is really not a big difference between mining blocks using proof of work and mining it using luck. Shares in proof of work are basically the same as luck here. You can create some pool and encourage people to find the highest luck and pay them accordingly to their luck. Later, you can just choose the highest luck and encourage everyone to mine on it, because there are the highest chances of finding a block. And since there are many miners trying to mine on the same luck, it will probably be found faster than every solo miner, because you have "difficulty*numberOfMiners" instead of "difficulty*1", so it is "numberOfMiners" times easier to mine a block.

I hope I am wrong, but it seems that creating pools will still be possible here and they will be profitable.

Of course You know that pools works on one mining address and one node and as for now from what I read and know mining with 10 miners on same address is worthless of course You can assign to each miner different node on different IP but You need minimum 2 cores, 4GB Ram so check price for that setting and make it x100 miners for example. Im paying 20$ for that kind of server so 2000$ monthly and if coin will be valuable miners will come and come so I don't think that is profitable for the pool owner. Even if You set 100 miners on different IP mining on same address still poor results. Results can be only when You set them on different nodes, IP and addresses Cheers
member
Activity: 141
Merit: 41
Quote
In a distributed environment, maxluck is a global variable, I think it is impossible to determine it.
I think maxluck should be a definite boundary value. I just want to ask, how big is maxluck set by dev?
I do not think that maxluck is "set by dev". I think that each miner calculates luck in the first phase and then, when this first phase in finished, the max luck value is just the highest luck value produced by all miners in the network. And then, each miner uses this maxluck from the first phase to mine block in the second phase. If maxluck would be a global variable "set by dev", then participating in the first phase would have no sense, because then it would be possible to just skip this first phase and start from the second.

Also, when the first phase is finished, the luck value cannot be changed anymore in the second phase. Because if it would be possible, someone could calculate luck higher than maxluck. And then, it may be profitable to calculate higher and higher luck, getting easier and easier difficulty. And then it would be almost the same as calculating single proof of work, but instead of hitting the lowest block hash, people would try to hit the highest luck all the time, even without calculating the second phase at all! By bringing luck to enormously high values, they would get a situation when any block produced in the second phase would be valid!

maxluck is set to 200000000(0xbebc200), luck is uniformly distributed in [0, maxluck].
The greater the luck value, the less difficult the second phase. As the luck value increases, the speed at which the difficulty of the second phase becomes smaller will be more obvious.
hero member
Activity: 813
Merit: 1944
Quote
In a distributed environment, maxluck is a global variable, I think it is impossible to determine it.
I think maxluck should be a definite boundary value. I just want to ask, how big is maxluck set by dev?
I do not think that maxluck is "set by dev". I think that each miner calculates luck in the first phase and then, when this first phase in finished, the max luck value is just the highest luck value produced by all miners in the network. And then, each miner uses this maxluck from the first phase to mine block in the second phase. If maxluck would be a global variable "set by dev", then participating in the first phase would have no sense, because then it would be possible to just skip this first phase and start from the second.

Also, when the first phase is finished, the luck value cannot be changed anymore in the second phase. Because if it would be possible, someone could calculate luck higher than maxluck. And then, it may be profitable to calculate higher and higher luck, getting easier and easier difficulty. And then it would be almost the same as calculating single proof of work, but instead of hitting the lowest block hash, people would try to hit the highest luck all the time, even without calculating the second phase at all! By bringing luck to enormously high values, they would get a situation when any block produced in the second phase would be valid!
newbie
Activity: 29
Merit: 1
Quote
can you show what is maxluck?
I guess that "maxluck" is the maximum luck value for all mining nodes in the whole network. It means that instead single, simple proof of work, everyone is calculating some luck and the max value is broadcasted to the network. So: the more nodes you have, the more chances are that you will hit "maxluck". And the more luck you have, the more chances you have to hit the next block.

To sum it up: in proof of work you are calculating the lowest block hash meeting the target and then you can broadcast it when you find it. In luck, you are calculating the highest luck value and then you broadcast it. So there is really not a big difference between mining blocks using proof of work and mining it using luck. Shares in proof of work are basically the same as luck here. You can create some pool and encourage people to find the highest luck and pay them accordingly to their luck. Later, you can just choose the highest luck and encourage everyone to mine on it, because there are the highest chances of finding a block. And since there are many miners trying to mine on the same luck, it will probably be found faster than every solo miner, because you have "difficulty*numberOfMiners" instead of "difficulty*1", so it is "numberOfMiners" times easier to mine a block.

I hope I am wrong, but it seems that creating pools will still be possible here and they will be profitable.

In a distributed environment, maxluck is a global variable, I think it is impossible to determine it.
I think maxluck should be a definite boundary value. I just want to ask, how big is maxluck set by dev?
newbie
Activity: 21
Merit: 0
hero member
Activity: 813
Merit: 1944
Quote
can you show what is maxluck?
I guess that "maxluck" is the maximum luck value for all mining nodes in the whole network. It means that instead single, simple proof of work, everyone is calculating some luck and the max value is broadcasted to the network. So: the more nodes you have, the more chances are that you will hit "maxluck". And the more luck you have, the more chances you have to hit the next block.

To sum it up: in proof of work you are calculating the lowest block hash meeting the target and then you can broadcast it when you find it. In luck, you are calculating the highest luck value and then you broadcast it. So there is really not a big difference between mining blocks using proof of work and mining it using luck. Shares in proof of work are basically the same as luck here. You can create some pool and encourage people to find the highest luck and pay them accordingly to their luck. Later, you can just choose the highest luck and encourage everyone to mine on it, because there are the highest chances of finding a block. And since there are many miners trying to mine on the same luck, it will probably be found faster than every solo miner, because you have "difficulty*numberOfMiners" instead of "difficulty*1", so it is "numberOfMiners" times easier to mine a block.

I hope I am wrong, but it seems that creating pools will still be possible here and they will be profitable.
newbie
Activity: 29
Merit: 1
Since the source code is not yet opened, here is a brief description of the mining algorithm of the Luck project.
Mining parameters:
    alpha -> The mining difficulty parameter of the first phase, that is, hash(first header, first nonce)     luck -> After the first phase is completed, luck = f(header, first nonce)
    basis -> Difficulty base of the second phase of mining.
    beta -> The mining difficulty parameter of the second phase, that is, hash(second header, second nonce)
The algorithm of the mining process as:
1. alpha, basis = pre_compute (difficulty adjustment strategy, the current block generation is too fast, reduce alpha and basis; the current block generation is too slow, increase alpha and basis. When the difficulty of the first phase is too large, reduce the basis; when the second phase is too difficult, increase the basis)

2. Find a suitable firstNonce such that hash(first header, firstNonce)
3. Calculate the luck value by luck = f(header, firstNonce)

4. Calculate the difficulty parameter of the second phase beta = basis * (maxluck / (maxluck-luck)) ^ 2

5. Find a suitable secondNonce such that hash(second header, secondNonce)
6. Pack the parameters into the block to complete the mining

From the above process, it can be seen that as the luck value increases in the second phase, the difficulty of mining in the second phase will decrease sharply. For example, when multiple nodes cooperate in mining, the luck value is more likely to be a medium luck value; when they do not cooperate, the luck value of the highest luck value will be significantly greater than the middle luck value during cooperation, so the difficulty of the node with the highest luck value in the second phase will be drastically reduced.

Another note: Since each mining process is divided into two phases and and cannot be executed in parallel, there is no way to start multi-threaded mining in one mining program. For multi-core machines, you can increase the CPU utilization by enabling multiple mining programs.


hi dev,
can you show what is maxluck?
member
Activity: 141
Merit: 41
New version have been released.
Before upgrading, you must backup your keystore carefully.
Make sure to complete the update within two days (before the block height 39200).

Be sure to save your keystore
member
Activity: 141
Merit: 41
Hi, very interesting project you have here!!
Will it be 10am or 10pm?

it will be 10am at UK time.
Pages:
Jump to: