Pages:
Author

Topic: [ANN]🌀 Blur Network(BLUR) 🌀 | PoW Cryptonight-Dynamic | CPU/Solo Mining | DPoW - page 13. (Read 41329 times)

jr. member
Activity: 209
Merit: 9
The Blur Network
Besides mining with CPU, can it be mined with AMD GPU or NVidia? In no way will it be possible to trace the transaction, thus ensuring privacy?

Please see Legal (Terms of Use) on our website and the license on github.  We can't guarantee any of our technologies' functions.  Bugs are possible, and privacy could be rendered non-existent by a bug or the price driven to zero for the same reason, at any time.  This is experimental software, just the same as Monero.  We are pursuing the scientific goal of these features. But, at the end of the day, neither Blur Network nor monero can guarantee error-free code
sr. member
Activity: 1204
Merit: 252
Besides mining with CPU, can it be mined with AMD GPU or NVidia? In no way will it be possible to trace the transaction, thus ensuring privacy?
jr. member
Activity: 209
Merit: 9
The Blur Network
Lol, I hope some of that is explained clearly enough Smiley thanks for the great question.   

Edit: Oh, and in regards to the pools: currently, we are not "Pool-resistant"... Just incompatible with the pool software that is for generic cryptonote coins.  I think that avoiding the pools may be an exercise that is simply not worth pursuing down the line... as I said, its merely a positive byproduct of the algo change.
jr. member
Activity: 209
Merit: 9
The Blur Network
CNAv1 is known to be vulnerable to pool-creation with some simple mods. That being the case, does Blur intend to fight against pools or to embrace them and keep the GPU resistance?


Pool resistance was not the objective with the algorithm changes... more so, a welcomed byproduct of them.  Pooled hashing is something that will become a part of the project further down the line, with a limit on poolsize based on % of net hash.  This achieves the goal of decentralization without exposing miners to the unbalanced "luck" of solving for the correct block hash ... Although, luck and randomness are *technically* more fair.

As someone who is not intimately familiar with how the cn-Adaptive algo works, would you be able to give a simplified explanation of how the algo manages to be GPU and pool resistant?

Definitely.  It's really not all that complex, to be honest. Explaining it can be, though.   NERVA's implementation currently adds a few more layers for randomness.  We'll be adding some of that on our own in the next network update which should be this week sometime.  Essentially, the algorithm runs a base number of iterations in the cryptonote algorithm... then dynamically adds an additional number of iterations (which differs each block) to that base number.  That dynamic portion is based on the previous block's height.  The way it is written, the iterations in a block cycles up and then back down to make a pattern of difficulty that looks like a sawtooth.  



if you notice hashrate gradually increasing, before dropping sharply, and then repeating the cycle... this is why.

There are two files that hold the algorithm's nuts and bolts, as they are present in BLUR's algorithm currently. These two files that we are going to look at, are located at the following locations in the source code:

Code:
blur/src/crypto/slow-hash.c
and
Code:
blur/src/cryptonote_basic/cryptonote_format_utils.cpp

The slow-hash.c file has a few pieces of information that are important and differentiate CN-Adaptive from other variants of cryptonight.  The first of which is on line 46:
Code:
#define MEMORY         (1 << 20) // 1MB scratchpad

As annotated, this parameter defines the scratchpad size for the algorithm's rounds of iterations. A 1MB scratchpad is also seen in Cryptonight-Light.  This size allows for less iterations in a round, and fits within the cache of lower end CPUs, enabling older hardware to still mine somewhat effectively.  

Now within the cryptonight algorithm, there is an added parameter in CN-Adaptive, for iterations.  This parameter defined as iters, and you can find the implementation on Line 570 of the same slow-hash.c file:

Code:
void cn_slow_hash(const void *data, size_t length, char *hash, int variant, int prehashed, size_t iters)

As well as lines 645-662:

Code:
   if(useAes)
    {
        for(i = 0; i < iters; i++)
        {
            pre_aes();
            _c = _mm_aesenc_si128(_c, _a);
            post_aes();
        }
    }
    else
    {
        for(i = 0; i < iters; i++)
        {
            pre_aes();
            aesb_single_round((uint8_t *) &_c, (uint8_t *) &_c, (uint8_t *) &_a);
            post_aes();
        }
    }

This variable "iters" calls out to a function in the second file I mentioned, to determine its value in the block being mined.   So head over to blur/src/cryptonote_basic/cryptonote_format_utils.cpp if you're following along.  

Within that file, on lines 891-901, you'll find the calculations for the number of iterations.  Before elaborating on the code, I would like to note that in its current state this code could be optimized with a GPU.  However, you  would still need a CPU present in some form, to direct the GPUs hashpower.  BLUR's goal is being too resource intensive for GPU/ASIC miners to pursue.  In its current state, and at the current value of BLUR... this has sufficed.  However, we are hardforking to a new implementation shortly, for the purpose of maintaining that as the project grows.

With that said, on lines 891-901 of cryptonote_format_utils.cpp we have:

Code:
 //---------------------------------------------------------------
  bool get_block_longhash(const block& b, crypto::hash& res, uint64_t height)
  {
    blobdata bd = get_block_hashing_blob(b);
    int cn_variant = b.major_version >= 5 ? 1 : 0;
int cn_iters = b.major_version >= 6 ? ( b.major_version >= 7 ? 0x40000 : 0x20000 ) : 0x80000;
    cn_iters += ((height + 1) % 1024);
    crypto::cn_slow_hash(bd.data(), bd.size(), res, cn_variant, cn_iters);
    return true;
  }
  //---------------------------------------------------------------

The lines here that we are primarily looking at, are the ones that declare and calculate the variable "cn_iters". Starting with the first mention (where we calculate the base number of iterations):

Code:
int cn_iters = b.major_version >= 6 ? ( b.major_version >= 7 ? 0x40000 : 0x20000 ) : 0x80000;

The code above breaks down into two parts...

Code:
b.major_version >= 6 ? (x) : (0x80000)
and
Code:
b.major_version >= 7 ? (0x40000) : (0x20000)

The "x" variable in the first part, is simply swapped out for the entire "second part" in the actual code.  For the purposes of explaining, its easier to break it apart this way.  The "?" symbol in C++ is what's known as a ternary operator. It essentially serves as an "if" statement directed by the ">=" operators that come before it, in this instance.

So it means to say "If the block version number (hardfork version) is greater-than-or-equal-to 6, define the iterations as the value on the left-hand side of the colon.  If it is not, define as 0x80000 or the value following the colon.  

The number 0x80000 is in hexidecimal, and translates to the human-readable number (in decimal format) 524288, for our base # of iterations.  Assuming we are above block version 5... we then move to the next conditional statement
Code:
b.major_version >= 7 ? (0x40000) : (0x20000)
.  

We use the same logic here, to say if we are on block version 7 or higher, we use 0x40000 or 262144 for the base amount of iterations.  If we are not (i.e. less than 7 but greater than 5), we use 0x20000 or 131072 for the base number.  Now, ONTO THE DYNAMIC PART.  That's much simpler:

So far we have iterations (for current hardfork) = 262144 + (dynamic portion). The dynamic part is found on line #897, directly after the calculation for the base number:

Code:
cn_iters =+ ((height +1) % 1024)

This means to say: "Add to the base number of iterations, the calculated value for the function (current block height) Modulo (1024).  A modulo just means divide the height by 1024, and look at your remainder.  That remainder is actually then the solution to the equation.  So, (1025) % 1024 would equal 1. Just the same, (2047) % 1024 would equal 1023, because 2047 = 1024 + 1023...

newbie
Activity: 6
Merit: 0
CNAv1 is known to be vulnerable to pool-creation with some simple mods. That being the case, does Blur intend to fight against pools or to embrace them and keep the GPU resistance?


Pool resistance was not the objective with the algorithm changes... more so, a welcomed byproduct of them.  Pooled hashing is something that will become a part of the project further down the line, with a limit on poolsize based on % of net hash.  This achieves the goal of decentralization without exposing miners to the unbalanced "luck" of solving for the correct block hash ... Although, luck and randomness are *technically* more fair.

As someone who is not intimately familiar with how the cn-Adaptive algo works, would you be able to give a simplified explanation of how the algo manages to be GPU and pool resistant?
jr. member
Activity: 209
Merit: 9
The Blur Network
newbie
Activity: 30
Merit: 0
We can mine without a pool, just sync the blurd, then run cli, you can command: start_mining (walletaddress) (#thread)
example:

start_mining bL39m2uQi8fTVpukYbHeKEQVKTfae2hvyLrkq8gxzMqeh8mHWoJkG8xQUVTpt6XUhf66zQKkLv2HGEe 9DEG2qvX232WioZewe 4

Good luck,

Best Regards,

Okane Satoshi

[wallet bL4Wmc]: start_mining bL4Wmch3q5R1KuoA2VjEaML3uTCZsZBZ4WNzMvGSJaSbTeEQpz7kb6HXc4uGTmqGrP1pdjVkE21Lsdr QeQtgrzEc2yxdgC2xn 4
Error: invalid argument: must be either 0/1, true/false, y/n, yes/no

Why ?
Hi,
i think that when you are in the blur-wallet-cli console, you don't put your wallet adress since it's already in your wallet.
if you start mining in blurd, you would add your adress.
At least it is what I do and it seems working.
Hope it help,


You need use : ./blurd start_mining bL35xi6e7D9hjp8Gtg6THhebqstYereqBh7oM3Gz8q4h14qoS81bZQF4jK3aGzycEQQZmaU6Rfe9zhd RGZoeCWHP2nvahjPqX 4
jr. member
Activity: 209
Merit: 9
The Blur Network
CLI Tools for Ubuntu 16.04 are now available via the Github Releases Page!
jr. member
Activity: 209
Merit: 9
The Blur Network
Whats to prevent people from creating a Cluster and mining with that?

Side note, Can I mine this with a raspberry PI?

No prevention on cluster mining, so to speak.  There is a limit of 5 nodes behind a single IP Address.

ARM code is not yet supported. 
newbie
Activity: 1
Merit: 0
Whats to prevent people from creating a Cluster and mining with that?

Side note, Can I mine this with a raspberry PI?
jr. member
Activity: 209
Merit: 9
The Blur Network
Blur Network is now listed on CoinGecko.com! Check out the page here: https://www.coingecko.com/en/coins/blur-network and they have a bunch of cool tools and widgets, also.
jr. member
Activity: 209
Merit: 9
The Blur Network
CNAv1 is known to be vulnerable to pool-creation with some simple mods. That being the case, does Blur intend to fight against pools or to embrace them and keep the GPU resistance?


Pool resistance was not the objective with the algorithm changes... more so, a welcomed byproduct of them.  Pooled hashing is something that will become a part of the project further down the line, with a limit on poolsize based on % of net hash.  This achieves the goal of decentralization without exposing miners to the unbalanced "luck" of solving for the correct block hash ... Although, luck and randomness are *technically* more fair.
newbie
Activity: 17
Merit: 1
good project! keep workin on it!
newbie
Activity: 100
Merit: 0
This coin has potential, i will be watching this one.
jr. member
Activity: 124
Merit: 1
you said what now?
CNAv1 is known to be vulnerable to pool-creation with some simple mods. That being the case, does Blur intend to fight against pools or to embrace them and keep the GPU resistance?
jr. member
Activity: 209
Merit: 9
The Blur Network
The topic of the pool is not disclosed

If this is a question, please phrase it more adequately. I'm not sure what it is that you're saying/asking.
newbie
Activity: 146
Merit: 0
The topic of the pool is not disclosed
jr. member
Activity: 209
Merit: 9
The Blur Network
GUI Wallets for Mac and Linux have been uploaded for pre-release at https://github.com/blur-network/blur-network-gui.  Stop over there, or our website to grab one or both.
jr. member
Activity: 209
Merit: 9
The Blur Network
When Windows GUI with one-click miner?


Very soon.  Still on schedule with the roadmap located here.  Website has also been revamped a bit and optimized by device.
jr. member
Activity: 209
Merit: 9
The Blur Network
The extraction is too complicated!
When will there be a pool?

If you're having trouble getting your miner set-up, drop by the Discord, there are plenty of people there who can help you out. Pools are not going to be coming for a long time, there antithetical to the whole idea.

This complexity of extraction is impossible to extract new blocks
And too heavy a process of extraction - installation of a purse, synchronization, its adjustment: all this makes the extraction process very difficult and sends new people away from the coin, since a very high threshold of entry into it.



Don't feed the trolls.  Dobro has been mining nearly since launch  Wink
Pages:
Jump to: