Consensus – confusion about certain Blockchain jargon

I'm really struggling to get a grip on a certain part of the bitcoin / blockchain terminology, and would really appreciate it if someone was able to bring a little bit of clarity. I've read a lot to find out, but the more I read, the more confusing it seems to be.

Basically it's about consensus and governance.

As far as I know, we have the following with blockchain technology:

  • Miners need consensus about which "next transaction block" is added to the chain (and the longest chain becomes the valid chain in the network).
  • Consensus is needed on which version of the protocol is used (disagreements lead to a hard fork).

My main question to the above: Are both called "consensus" or is there a terminology that separates the two? (When I open a new article on governance and consensus, I have to read half of it to find out what kind of "consensus" the author refers to.

So, would governance be the developers that have the authority to merge changes in the main Bitcoin codebase?

Linux kernel vfs_write function confusion

I looked at the old Linux kernel code (3.10.1), especially the I / O path.

So when the IO enters the VFS layer, the function becomes vfs_write() is called.

Here I can see a call file->f_op->write()This is a blocking call as a man page of the system call write() says.

The other option in the code is when file->f_op->write In this case, the pointer is undefined vfs_write() Calls do_sync_write(),

do_sync_write() goes ahead and callsfilp-> f_op-> aio_write () `, an asynchronous call, as explained in the man page of aio_write.

Now my question is, why was the function do_sync_write() with the name "sync", if it is clearly about calling an asynchronous io function?

I'm probably missing something, or was it a mistake that was made here?

Function definitions as reference,

ssize_t vfs_write(struct file *file, const char __user *buf, size_t count, loff_t *pos)
    ssize_t ret;

    if (!(file->f_mode & FMODE_WRITE))
        return -EBADF;
    if (!file->f_op || (!file->f_op->write && !file->f_op->aio_write))
        return -EINVAL;
    if (unlikely(!access_ok(VERIFY_READ, buf, count)))
        return -EFAULT;

    ret = rw_verify_area(WRITE, file, pos, count);
        if (ret >= 0) {
        count = ret;
        if (file->f_op->write)
            ret = file->f_op->write(file, buf, count, pos);
            ret = do_sync_write(file, buf, count, pos);
        if (ret > 0) {
            add_wchar(current, ret);

    return ret;

ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
    struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len };
    struct kiocb kiocb;
    ssize_t ret;

    init_sync_kiocb(&kiocb, filp);
    kiocb.ki_pos = *ppos;
    kiocb.ki_left = len;
    kiocb.ki_nbytes = len;

    ret = filp->f_op->aio_write(&kiocb, &iov, 1, kiocb.ki_pos);
    if (-EIOCBQUEUED == ret)
        ret = wait_on_sync_kiocb(&kiocb);
    *ppos = kiocb.ki_pos;
    return ret;

Algorithms – Runtime for a given loop confusion

I have a loop:
for (int i = 0; i <N; i * = 5) {...}

from where {...} is a statement.

I try to understand the term. As far as I know:

So that would be the term $ log_5 (n-1) $? The reason I'm not sure is that when I was analyzing algorithms, I thought we needed to use basic 2 protocol functions. If the latter is the case, how would I convert? $ log_5 $ to $ log_2 $?

dg.differential geometry – confusion about complex differential forms

I follow Kobayashi's "Differential Geometry of Complex Vector Bundles," pp. 11-12, prop. 4.9. In a ranking$ r $ Hermitian holomorphic vector bundle $ (E, h) $ about a complex manifold $ M $there is a unique one $ h $-Connection $ D $ so that $ D ^ {0,1} = bar partial $,

The proof works in local holomorphic coordinates $ s = (s_1, …, s_r) $ and uses the uniqueness to construct the following: Consider the connection form $ w ^ j_i $:
$$ 0 = bar partial s_i = D ^ {0,1} (s_i) = s_j {w ^ {0,1}} ^ j_i $$
so $ w ^ j_i $ is of the type $ (1.0) $,

Since $ D $ is a $ h $-Connection,
$$ dh_ {ij} = h (Ds_i, s_j) + h (s_i, Ds_j) = w_i ^ ah_ {a bar j} + h_ {ib} bar w ^ b _ { bar j}. $$

Now the claim is there $ w $ is $ (1.0) $ then
$$ d & # 39; h_ {ij} = w ^ a_ih_ {a bar j} $$,

Now here's my confusion: this should (as well as I understand it) mean that (in local coordinates on M) $ bar w ( partial_ {z ^ l}) $= 0. But this conjugation of $ w $ is on the finish, d. H values from $ w $ and not the domain, i. $ partial_ {z ^ l} ​​$,

In this case, it is unlikely that $ bar w ( partial_ {z ^ l}) = 0 $ because that would mean that $ w ( partial_ {z ^ l}) = 0 $ so $ w $ is both kind $ (1.0) $ and $ (0.1) $ That's zero.

The question is: There are two ways to conjugate a form – to conjugate the income and to conjugate the result. I understand that in this calculation we use the latter kind, but the conclusion that the species is exchanged presupposes the former.

Confusion on the issue of M2 certification

One product has a base price of $ 30 and a special price of $ 25. The staggered discount for this product is $ 20 for 5 products. This product also has a catalog rule of 25% off. What is the product price displayed on the product detail page?
A. $ 15

B. 22.5 USD

C. $ 25

D. $ 18.75

What do you think is the right answer to this question?

Any ideas?

Confusion around the index in a matrix derivative

I'm sorry that I have not typed the latex for my question. Instead, I will paste the text excerpt as a picture. My question is very simple, since I only want to clarify whether an index exists $ k $ runs from $ 1 $ to $ n $ or $ m $, I think it's a typo in the text and it should work $ n $ but it's up there $ m $,

Enter image description here
Enter image description here

Towards the end, there is a sum to calculate the derivative of $ J $ in memory of $ W_ {ij} $ and it is multiplied by $ delta_k $ and the $ k $ runs until $ m $what i should think $ n $,

$ W $ is a $ n times m $ Matrix, $ J $ is a scalar, $ x $ is $ m times $ 1 and $ z $ is $ n times $ 1,

Thanks for your help.

Category Theory – Confusion about How $ H_A Works: mathscr A ^ {op} to mathbf {Set} $

For a locally small category $ mathscr A $the functor $ H_A: mathscr A ^ {op} to mathbf {Set} $ is defined as follows:

  • for objects $ A in mathscr A $: $ H_A (B) = mathscr A (B, A) $
  • for arrows $ g: B & # 39; to B $ in the $ mathscr A $: $ H_A (g): mathscr A (B, A) to mathscr A (B #, A), p mapsto p circ g $

I'm still confused with that $ ^ {op} $ Thing. To say that $ H_A $ is a functor is that to say $ H_A (g circ f) = H_A (g) circ H_A (f) $ from where $ g: B to B, f: B & # 39; & # 39; to B & # 39; $, But the composition $ H_A (g) circ H_A (f) $ makes no sense. What is wrong with my application of the definition of a functor?

cpu – confusion in accelerating the calculation for the pipeline architecture

This is an online question that I am trying to solve.

You get a pipelineless processor that has a cycle time of 10 ns and an average CPI of 1.4. If a 5-stage pipeline processor has 1 ns, 1.5 ns, 4 ns, 3 ns and 0.5 ns, is this the best possible speed increase compared to the original processor?

Approach I:
In a pipelined architecture, the steady-state CPI is typically 1, provided there is no fixed percentage of NOPs. So speed up = CPI_non_pipelined / CPI_pipelined = 1.4 / 1 = 1.4

Approach II:
To convert the execution to a pipeline execution, we must reduce the cycle to adjust the phase duration. Thus, the pipeline cycle should be a maximum of {phase durations} = {1 ns, 1.5 ns, 4 ns, 3 ns and 0.5 ns} = 4 ns. So accelerate = cycle_duration_non_pipelined / cycle_duration_pipelined = 10/4 = 2.5

Wondering why this difference is! Any help is greatly appreciated.

Blockchain – confusion between chickens and eggs over bitcoin generation

A valid Bitcoin block must contain at least one transaction. This is the Coinbase transaction where the block reward is paid out. Most early Bitcoin blocks did not contain transactions that sent bitcoins from one party to another, but only the Coinbase transaction used to pay out the re-stamped bitcoins.

In fact, the first transaction involving the exchange of coins was in block 9 when Satoshi sent 10 BTC to Hal Finney

java8 – 2019 Java Confusion – what it's worth to learn

If this is not relevant to the forum, I apologize. I fell a bit into the rabbit hole with Java. I am a beginner. I know there have been several JDK releases since switching to the 6-month release schedule. I thought this was not a big deal until I started learning to read and write files and found out that Java 8 introduced a new stream library. I wondered in the industry which Java version is most widely adopted / which version should be used as a starting point? Is 8 the most adopted or should it go further forward to the other newer releases. Or maybe most of them have not even switched to something new and use Java 7 …

Many Thanks