Coder Social home page Coder Social logo

guigulive-operation's Introduction

硅谷live以太坊智能合约频道官方地址

一、课程如何更新的呢?(以北京时间为准)

每周三、日更新课程,具体安排如下

日期 课程
1月7号 第一课 《智能合约设计初阶-单员工薪酬系统》
1月10号 第二课 《智能合约设计进阶-多员工薪酬系统》
1月14号 第三课 《智能合约后端优化和产品化》
1月17号 第四课 《使用Truffle架构进行前后端交互,测试,部署》
1月21号 第五课 《分布式应用前端产品化》
1月24号 第六课 《分布式应用前端产品化-进阶》
1月28号 第七课 《智能合约的主网部署》
2月4号 总答疑

每周日上午10点为直播答疑(14、21、28号)

二、课程大纲:

第1课:智能合约设计初阶-单员工薪酬系统

  • 合约的基本概念和定义
  • Solidity类型系统与传统语言的异同
  • Solidity独特的单位系统
  • 区块链系统全局变量:区块信息,消息

第2课:智能合约设计进阶-多员工薪酬系统

  • 动态静态数组的不同
  • 函数输入参数检查 revert
  • 循环与遍历的安全性
  • 程序运行错误检查和容错:assert与require

第3课:智能合约后端优化和产品化

  • 如何通过数据结构优化降低合约执行成本
  • 合约的继承
  • 巧用modifier
  • 以太坊函数库的使用和基本介绍

第4课:使用Truffle架构进行前后端交互,测试,部署

  • 为什么要用Truffle,Truffle的基本概念
  • Truffle 的command line 功能
  • 初始化项目与Truffle项目目录结构
  • 编译部署合约到testrpc

第5课:分布式应用前端产品化

  • Metamask交互,Chrome浏览使用dApp
  • Event和智能合约后端的交互
  • 前段代码和后端代码的整合测试(integration test)

第6课:《分布式应用前端产品化-进阶》

  • 对我们之前开发的payroll合约进行整合,我们主要讲介绍一下以下两部分的内容,metamask插件与前端代码的交互;前端代码中Event的使用。

第7课:《智能合约的主网部署》

  • 智能合约安全
  • 主网合约部署
  • 拜占庭硬分叉,最新solidity语音特性
  • 介绍白帽黑客实践所要破解的合约,公布竞赛规则

三、人员分工

班长雅珣: 

  • 负责发送入学指南、拉人进群、大群的群规制定;
  • 发现社群中优质kol用户,并持续激励他们;
  • 用户产生疑问,我们能快速进行解答;
  • 负责社群打卡活动、联系助教及学员征集话题;
  • 负责社群开营仪式、结业仪式、中期活动、白帽黑客等活动。

班长Nicole:

  • 帮用户获取课程之外的干货和拆解课程中的疑难知识点

班长晓杰:

  • 负责督促用户写作业,助教批改作业;
  • 负责总体的作业统计,公布作业信息,筛选优秀作业,海报展示;
  • 负责每周六的助教分享会。

班长令帆:

  • 负责统计学员和小组积分,提前制作积分表;
  • 负责每周和结业在社群中用海报公布各小组的积分状态和前三名个人分状态。

助教:

作业点评

  • 唐涵:负责1-10号、同时在社群“开拓者A战队”担任助教
  • 海罗沃德:负责11-20号,同时在社群“开拓者B战队”担任助教
  • Jonny:负责21-30号,同时在社群“开拓者C战队”担任助教
  • Steven:负责31-40号,同时在社群“开拓者D战队”担任助教
  • 振宇:负责41-50号,同时在社群“开拓者E战队”担任助教
  • 李明:负责51-60号,同时在社群“开拓者F战队”担任助教
  • 高冰:负责61-70号,同时在社群“开拓者G战队”担任助教
  • 刘芳路:负责71-80号,同时在社群“开拓者H战队”担任助教
  • 何智华:负责81-90号,同时在社群“开拓者 I 战队”担任助教
  • 王鲁明:负责91-100号,同时在社群“开拓者J战队”担任助教

四、课程表

北京时间 星期一 星期二 星期三 星期四 星期五 星期六 星期天
09:00 鲸打卡 鲸打卡 鲸打卡 鲸打卡 鲸打卡 鲸打卡 鲸打卡
10:00 live分享会 直播答疑
11:00 课程更新
12:00 疑难知识点汇总和解析 疑难知识点汇总和解析
21:00 每日复盘 每日复盘 每日复盘 每日复盘 每日复盘 每日复盘 每日复盘
22:00 周日课程作业截止/
课程更新
课外知识点拓展 周三课程作业截止

guigulive-operation's People

Contributors

biteveryxw avatar crapulencer avatar hezhihua81 avatar leapm avatar linjie-1 avatar linjie-2 avatar lsdlinshunda avatar modong avatar public2018 avatar seanxwzhang avatar steven672 avatar washingweb avatar xuefeng-zhu avatar yangfan3211 avatar zl777 avatar zli25 avatar zyzlouis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guigulive-operation's Issues

第一课的疑问,关于合约内方法的调用者和 gas 消费的关系

根据第一课内容,一个 contract 可以部署在一个 block 上,一般来说还需要提供一些 gas limit 给 block 的维护者(矿工)。
那么,

  • contract的部署和其方法的调用是什么关系?
  • contract是每个合法身份的 Address 都可以发起调用吗?发起调用的 Address 需要支付 gas 吗?
  • 课程里如果 getPaid 没做检查的话,那么 frank.transfer 这个操作是 frank 支付 gas,还是调用者支付 gas?

用户私钥、keystore文件的保存方案

区块链中,只有私钥才能动用资产,并且私钥丢失意味着资产丢失。
如果基于以太坊做企业应用,如果跟用户说私钥丢失就永久over,那估计项目也就over了。(起码现阶段是这样)
对私钥文件的生成、存储,交易签名,不知道大家在实际项目中都是如何处理的。

C3_linearization 加分题求解释

wiki link 上看的介绍,使用的python3来运算加分题:
contract O
+- contract A is O
+- contract B is O
+- contract C is O
+- contract K1 is A, B
+- contract K2 is A, C
+- contract Z is K1, K2

 class Type(type):
...     def __repr__(cls):
...         return cls.__name__
...
>>> A = Type('A', (object,), {})
>>> B = Type('B', (object,), {})
>>> C = Type('C', (object,), {})
>>> K1 = Type('K1', (A,B), {})
>>> K2 = Type('K2', (A,C), {})
>>> Z = Type('Z', (K1, K2), {})
>>> Z.mro()
[Z, K1, K2, A, B, C, <class 'object'>]

正确结果助教说是[Z, K2, C, K1, B, A, O]

又手算了一遍,还是[Z, K1, K2, A, B, C, O]
不明白是怎么回事:
计算过程:

L[O] = [O]
L[A] = [A] + merge(L[O] + [O]) = [A, O]
L[B] = [B, O]
L[C] = [C, O]
L[k1] = [k1] + merge(L[A], L[B], [A, B])
         = [k1] + merge([A, O], [B, O], [A, B])
         = [k1, A] + merge([O], [B], [B])
         = [k1, A, B] + merge([O]) = [k1, A, B O]
L[k2] = [k2, A, C, O]
L[Z] = [Z] + merge(L[k1], L[k2], [k1, k2])
       = [Z] + merge([k1, A, B, O]], [k2, A, C, O], [k1, k2])
       = [Z, k1] + merge([A, B, O], [k2, A, C, O], [k2])
       = [Z, k1, k2] + merge([A, B, O], [A, C, O])
       = ...
       = [Z, k1, k2, A, B, C, O]

有什么问题么?
如果有问题,还想问,结果为什么和python的运行结果不一致?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.