Loading

Module 1: Propriedades do Blockchain

Nota de Estudos
Study Reminders
Support
Text Version

Hash Pointers e Block Rewards

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

A última coisa que de onde vêm os bitcoins são criados para que os bitcoins sejam criados sempre que um bloco  
está minado, ou seja, quando um bloco é criado, todo mundo tenta resolver o problema de consenso e pode  
discutir em caso de quebra de quebra-cabeça do Bitcoin, e então como uma recompensa do vencedor com um vencedor é dada  
alguns novos bitcoins e que só assim o Bitcoin é criado. Então a razão pela qual você não estava está lá  
é isso porque senão, por que eu gastaria meus recursos de computação, que pede dinheiro para  
validar transações para colocá-las em um bloco.  
E então resolver um quebra-cabeça para fazer parte do blockchain? Eu preciso de alguma razão para fazê-lo. Portanto, lá  
tem que ser um incentivo. Então esse incentivo ou recompensa realmente faz o sistema continuar  
senão todo mundo vai parar de minerar porque é caro para o meu. Então, a recompensa deve ser  
também o suficiente para que a quantidade de dinheiro que eles gastam em pagar a conta de eletricidade e pagar por  
o hardware e pagando pelo resfriamento do hardware muito grande que eles usam para resolver o  
hash puzzles devem ser superados pela recompensa.  
Assim, a recompensa deve ser grande o suficiente e isso é chamado de recompensa de bloco. Então a recompensa do bloco  
inicialmente em Bitcoin foram 50 bitcoins, depois, depois de 4 anos, tornou-se 25. E depois de 4 anos, ela tem agora  
tornar-se 12,5. E em mais um par de anos, ela se tornará 6,75 e assim por diante, e no final, ela  
tornar-se-á 0. E a razão é que o ecossistema Bitcoin também tem essa coisa que haverá  
Nunca serão mais de 21 milhões de bitcoins a menos que o Bitcoin mude sua estratégia e política e  
tudo.  
Assim, e a única maneira de criar bitcoins é através das recompensas do bloco. Assim como nós, se mantemos o  
bloquear a recompensa o mesmo, sempre, então o, então você tem que começar, você sabe, passado os 21 milhões  
marca. Portanto, portanto, eles estão a tapering off, é como tipo de distribuição geométrica para que  
a eventual soma passa a ser de 21 milhões. Então então você pode perguntar, por que iria, alguém ser  
interessado em modelagem, mineração, gastos, você sabe, dinheiro para fazer o hash de solução de mineração  
quebra-cabeças.  
Então, há algo também que toda transação que você faz, você também tem que dar alguma  
taxa de transação. Então, no início, a taxa de transação estava lá dentro, e nós não incluímos em  
nosso exemplo aqui. Mas se as taxas de transação lá, o que significa que quem ganha deles hash  
puzzle pode manter a pode transferir a taxa de transação de cada transação para sua conta. So  
portanto, o, se houver, você sabe, 100 transações em um bloco, e cada uma dá.  
Vamos dizer, alguma pequena quantidade de taxas de transação, então juntos, eles se tornarão um bem    
quantidade e, portanto, os mineiros ainda terão incentivo para ganhar novos bitcoins através deste  
processo mesmo que as recompensas tenham parado. Então, é assim que essa coisa está planejada para acontecer.  
(Consulte O Tempo De Deslizamento: 01:07:34)  
Assim, a estrutura de blocos finais é que você precisa adicionar também o endereço de recompensa. Porque sempre que  
há uma recompensa, no bloco devemos saber onde enviar a recompensa. O descanso é o mesmo que  
antes. É uma lista de confiança de transações, hash anterior e no nosso caso, é uma questão anterior.  
Também porque estamos fazendo isso dentro do programa caso contrário, aquela festa não é necessária para estar lá.  
(Consulte O Tempo De Deslizamento: 01:08:08)  
Então, chegando agora ao, seu exercício opcional baseado nesta palestra em particular. Então, antes de mais nada, nós  
irá dar um arquivo zip contendo o código e ele terá algumas instruções que você tem que  
realmente use o ubuntu linux para fazer isso. Então, você se você não tinha ubuntu linux, você pode realmente  
usar caixa virtual que você pode fazer download a partir de oracle e caixa virtual é realmente uma virtualização  
software e então você pode fazer o download de um Linux Ubuntu que é gratuito.  
E então você pode ter um construído uma máquina virtual usando caixa virtual que executa o Ubuntu 18,4 ou  
carta, pois também precisaremos de você para obter algumas das bibliotecas que não costumam vir  
com a distribuição Linux. E essas bibliotecas estão trabalhando apenas com o último Ubuntu. E  
então você olha para o código neste arquivo crypto test dot cpp para ver como as várias funções da API  
a partir dessas bibliotecas que você tem que usar por exemplo, para geração de chaves e para hashing,  
SHA256 e assim por diante.  
E então você tem que implementar essa função de validação. Então, a versão final 3 validar de  
transação e então você tem que implementar a validação do bloco que é como implementar o  
validação de todas as transações chamando esta função realmente você pode validar e depois você  
também pode, há um bug de desempenho no código que é dado na função de saldos de atualização. So  
que você pode encontrar então você terá algum bom exercício em você sabe depurar performance.  
(Consulte O Tempo De Deslizamento: 01:10:08)  
Então, para validação da transação, é preciso escrever código para a verificação de que o endereço de envio é o  
hash da chave pública que faz parte da transação também você tem que computar a transação  
hash e verifique se o hash que isso foi colocado parte das correspondências de estrutura e depois você  
também terá que usar esse hash de transação e verificar a assinatura que está lá. Então, estes são os  
coisas que você tem que verificar para validar uma transação diferente da verificação de saldo que  
na verdade estamos assumindo.  
(Consulte O Tempo De Deslizamento: 01:10:45)  
Você vai fazer para validação de bloco, você tem que passar pelo bloco C é um vetor de transações. Então,  
você tem que iterar sobre o vetor e aplicar a validação da transação a cada um desses, e se houver  
deles retornaram falso então o bloco é inválido. Se todos eles retornarem true, então o bloco é válido,  
então você faz a atualização dos saldos após cada transação válida. Assim você pode chamar atualização existente  
saldos para isso, então você confere o hash de bloco.  
E então você adiciia a recompensa do bloco aos saldos, onde quer que neste caso, seja qual for a recompensa  
endereços, você acabou de colocá-lo lá, em caso de uma situação computacional distribuída como em bitcoin,  
cada pessoa que cria um bloco coloca seus próprios endereços o endereço de recompensa, mas, eventualmente, apenas  
um deles obterá recompensa.  
(Consulte O Tempo De Deslizamento: 01:11:38)  
Agora no mesmo arquivo zip, você obterá vários arquivos de teste, número de arquivos de dados e se você usa  
eles, então você deve obter a saída para que você combine com eles contra essas saídas fazendo um  
comparação do presente arquivo contra a saída desta execução de seu programa sobre esses dados e que  
lhe dará uma satisfação de tê-lo feito corretamente.  
(Consulte O Tempo De Deslizamento: 01:12:02)  
Então, isso mostra o esboço das aulas. Então mais cedo quando estávamos realmente passando por isso, nós  
tinha menor, você sabe, nós só mostramos os trechos. Então isso mostra um pouco mais como você sabe,  
esta é a classe de bloco se ela é válida ou não, depois que o processo de validação passar, ele irá  
ser configurado como true ou false. E então você tem o, lembre-se que este é um mapa, este mapa é uma tabela hash para  
saldos. E então você tem todas essas funções como essas são funções construídas.  
Este é, na verdade, um item de dados. Este é também um item de dados, que é um conjunto de transações como um vetor, este  
é o hash anterior, o hash de bloco e, em seguida, este ponteiro está lá para o nosso programa, porque o nosso  
O programa é baseado em um único processo. Portanto, podemos usar ponteiros reais.  
(Consulte O Tempo De Deslizamento: 01:12:53)  
As transações também estão realmente tendo essa estrutura e esse tipo de tabela hash de mapa de equilíbrio é  
realmente definido nessas transações no h e este é o que são os diferentes conteúdos de partes do  
transação que já vimos ter a chave pública o endereço de origem, endereço de destino, mudança  
sinal de hash de quantidade de endereço e com uma transação direta é válida.  
(Consulte O Tempo De Deslizamento: 01:13:20)  
Resultado do Hash é o so, o ponto cripto h possui protótipos das funções crypto e as classes em  
este caso a classe de resultado hash é definida aqui e ela tem todas as construtoras ela tem a maneira de configurar  
hash a partir de dados e também ele tem um resultado hash. Este é o operador sobrecarregando. Este é o  
a concorrência sobrecarregando isso não é igual sobrecarga isso é menos sobrecarga. Então, estes são os  
espécie de coisas e é assim que você acessa uma parte particular dos resultados passados. Então, nem todos eles  
são necessários para este programa específico, mas é assim que as classes de resultado hash definidas.  
(Consulte O Tempo De Deslizamento: 01:14:08)  
Então, o primeiro bloco é chamado também chamado de bloco de base de moedas. Assim, o bloco de base de moedas pode ser criado  
usando esta construtora. E quando você diz que o bloco anterior aponta para nulo e ele está vinculado é  
um ele é valididades configurado para falso inicialmente, mais adiante se for validado, então ele será feito e no  
iniciando você reajusta saldos para bloco regular inicialmente você cria você inicializar todos estes  
diferentes itens de dados como a validade é configurado para o comprimento falso é atualizado.  
Até o comprimento anterior mais um hash anterior é o hash de blocos anteriores e o bloco anterior é  
você conhece o ponteiro para o anterior e você reajusta saldos após isso com funções diferentes  
você continua adicionando transações e assim por diante no bloco.  
(Consulte O Tempo De Deslizamento: 01:14:58)  
Então, os passos que você precisa fazer é você ter que fazer o download do último Ubuntu. E se a sua máquina for  
não dual bootado, instalar caixa virtual a partir do Oracle e usar máquina virtual para executar o Ubuntu. Então  
você vai para clonar a biblioteca de ressl aberta do github. E então você faz a instalação dos vários  
bibliotecas impulsionam biblioteca, configuração automática automática, etc. Uma vez que você tenha instalado tudo isso, então lá  
é um arquivo README.md, que você tem que visualizar para ver como construir e instalar o portátil  
biblioteca manager. E esta é a onde você recebe todas as funções de criptomoedas que são necessárias.  
(Consulte O Tempo De Deslizamento: 01:15:42)  
E então você faz o download do código para exercício de blockchain a partir da plataforma sherm que iremos  
estar colocando lá dentro e seguir o arquivo README dentro da socialidade para construí-lo. E então e  
então você escreve as funções específicas que você exige no dever de casa. Assim a escrita a  
funções não são muito trabalho aqui. Mas o que está acontecendo, o que vai acontecer é que você  
ter que entender o código inteiro para realmente fazer as mudanças, pequenas mudanças.  
E é aí que você vai chegar a ver o código inteiro e entender como ele funciona e assim por diante,  
que é o objetivo deste exercício. Por isso, com isso, essa palestra 3 chega ao fim. Então, da próxima vez nós  
vai realmente olhar para o primeiro blockchain real que você sabe, como ele é feito. Você sabe, ela é, você  
conheça, técnicas e estrutura e você sabe, como a manutenção distribuída dele é feita para  
blockchain do Bitcoin. E nós vamos de lá obrigado.