智能合约学习(1)

1.transation 交易
2.哈希校验:是否被串改。
3.pow 工作量证明
4.block 威胁
5.私钥转账签名

https://anders.com/blockchain/coinbase.html
以太坊账号通用的原因:
普通注册存在公司的服务器中。
以太坊账户只有一个,私钥存在电脑本地,可以通用。

#30秒等待的详细流程

translation提交给一个node(如何修改node,选择node?)
node可能在某个时间内收到很多个translation
node对translation排序,挖矿
node算好nonce就会广播给全网
最先算出nonce的node会得到挖矿奖励

智能合约
一个由代码控制的账户, 可能与钱打交道的合同

  1. balance 账户余额
  2. 2.storage 智能合约的数据存储 code 智能合约的机器码(二进制机器码)
  3. code 智能合约的机器码(二进制机器码)
  4. code 智能合约的机器码(二进制机器码)

#solidity简介

1.扩展名 .sol
2.强类型编程语言
3.与javascript类似

solidity —> bytecode(机器语言,区块链系统读取) solidity —> ABI application
简单的helloworld 智能合约

pragma solidity ^0.4.17;  //声明编译器的版本

contract Inbox{            //类似java的声明class
    string public message; 
    
    function setMessage(string newMessage) public{
        message = newMessage;
    }
    
    function getMessage() public view returns(string){ //有有返回值
        return message;
    }
}

#solidity函数声明

函数名
函数签名(返回值,参数类型,修饰符)
修饰符 说明
public 公有,任何人(拥有以太坊账户的)都可以调用
private 私有, 只有智能合约内部可以调用
view/constant 函数不会修改任何contract的数据
pure 函数不使用任何智能合约的变量
payable 调用函数需要付钱,钱付给了智能合约的账户
returns 返回值 函数声明中使用

remix工作原理. 虚拟的以太坊网络

1.控制台, 编译节点, run节点 environment javascript vm
2.account 虚拟账户 5个
3.创建智能合约,智能合约在网络上的地址是什么
4.调用getMessage setMessage
5.set的红色 (send) 发送 transaction请求 至少花费十几秒 (花钱!!!)
6.get的蓝色 (call) 调用 瞬间 (免费)

搭建本地solidity开发环境

1.安装nodejs
2.npm install remix-ide -g
3.remix-ide

外部账户,创建智能合约的transaction流程
字段描述
noncenonce代表此账户创建的合约序号
to- 空
data智能合约编译的bytecode
valuetransaction带的钱 单位wei
gasprice油价
gaslimit最大gas量
key密码学相关信息

函数调用call函数调用 send transaction
不修改智能合约的数据修改智能合约的数据
函数可以返回数据函数不能返回数据, 因为函数需要花时间执行
立刻执行需要几十秒才能执行完毕,返回值是transaction的hash
免费要花钱 钱!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值