清空微信是种什么体验?

微信图片_20200612195028.jpg

不知何时起,微信就时时响个不停! 固然时代给予了交流和工作的便利,但是又陷入了另一个怪圈:时时刻刻都被微信所绑架!

粗算了下,好友上百,圈子也有几十。每个人都想露脸,都想刷点存在感,还要加上工作的信息,一天到晚地都是在处理各式的信息中挣扎着。在信息的汪洋中我感到一片窒息!

所以,一般我会用最快的速度处理然后删除—阅后即焚! 突出点效率,专注自己的事情,心情也好起来了。还可以抽空喝个咖啡,看上几页书!


This page is synchronized from the post: ‘清空微信是种什么体验?’

权限控制 / 学习智能合约#13

owner.jpg

现实中有很多不同的权限,比如说你可以花自己的钱,别人的钱你就花不了,这说明你没有别人的权限。在智能合约中也可以同样定义权限以得到不同的控制级别。

在智能合约中可以设置所有者、管理员,对它们赋予不同的权限,控制不同的操作。本质上就是设置函数修改器,只有符合条件的人员才能调用函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
pragma solidity >=0.4.24 <0.7.0;

contract AccessControl {
address public owner; //所有者
address[] admins; //管理员列表
uint public x;

constructor() public {
owner = msg.sender;
}

function isAdmin() public view returns(bool){
//遍历管理员列表以判断是不是管理员
for(uint i = 0; i < admins.length; i ++){
if(msg.sender == admins[i]){
return true;
}
}
return false;
}

modifier onlyOwner() {
require(msg.sender == owner);
_;
}


modifier onlyAdmins() {
require(isAdmin());
_;
}


function addAdmin(address a) public onlyOwner{
//只有所有者才能添加管理员
admins.push(a);
}

function set(uint a) public onlyAdmins{
//只有管理员才能调用此函数
x = a;
}
}

如上代码所示,就是把名单先存起来,设计出函数修改器(类似于python的装饰器)以实现不同的权限。


This page is synchronized from the post: ‘权限控制 / 学习智能合约#13’

会员卡难办吗?解读下微支付通道 / 学习智能合约#12

vip.jpg

现实中我们经常有办卡的需求,比如办张购书卡、饭卡、电影卡等。这些会员卡会带来不少便利,还有不少优惠!这些天研究的智能合约中微支付通道其本质也就是办张会员卡!

以太坊转帐贵且慢,对于消费频繁的支付有没有什么好办法呢?答案就是办张会员卡!我们假定这么一个消费支付的场景:
你每天都要去星巴克买咖啡。一来二去的,你可能就会觉得有些麻烦:不想带零钱,也不想带手机,有什么快速地办法买到咖啡呢?办张星巴克的会员卡就解决问题啦。你往卡里充个200块,每次买时店员给你打个勾就可以啰!即不用现金也不用支付宝,快且省事。

既然这个会员卡这么好用,没有理由别人不用吧。于是以太坊的开发人员们就鼓捣出状态通道这么个东东。

channel.jpg

如上图所示,和会员卡类似,通道合约分三个步骤进行交易:

  1. 你部署一个智能合约,将自己的钱转到合约里,打开了一个支付通道。
  2. 付钱的时候,你发送一个带自己签名的消息给星巴克,指明自己的消费金额,也就是用会员卡记帐。
  3. 星巴克关闭支付通道,通过将上面第二步收到的消息发送给智能合约以取出属于自己的那部分钱,并将剩余的钱退还给你。

就这样,把每次都向以太坊上转帐变成以会员卡来记帐的方式,来节约转帐的费用和时间。所以说,会员卡真是好用啊。

上岛咖啡见星巴克的会员卡业务风生水起的,也动了心思想加入:你这办的卡到我这也能用!于是,其它的一些咖啡店都用上了会员卡。这时,这个卡就叫雷电网络!

撇开高深莫测的技术和代码,理解状态通道和雷电网络还是挺容易的,也就是办张会员卡的事。嗯,这张会员卡到现在还没办好,也可以看出这些个程序猿水平也就这样,哈哈!


This page is synchronized from the post: ‘会员卡难办吗?解读下微支付通道 / 学习智能合约#12’

你的专业摆地摊能干啥

design.jpg

最近地滩经济蛮火的!很多群里都是各种嘲讽和自嘲。我也查了下,“地滩经济”火起来大约起源于李总理。

李克强总理提出:“地摊经济、小店经济是就业岗位的重要来源,是人间的烟火,和‘高大上’一样,是中国的生机”。

上有所好,下必效之! 现在这么多人待业和失业的,都没办法工业赚钱,人都要吃饭啊,咋办呢?!练地滩!

我记得前两年还是全民创业的!这么快都破产了?! 可能很多数据我看不到吧,还是积级乐观点。总理都说了就算是练地滩也不丢人的。

世界变化快啊! 我记得前几年,有个故事:北大才子卖猪肉。社会是好一顿闹啊,大有世风日下,人心不古。才子本人也不好意思,说是给母校抹黑了。这才过了多久啊,如果还是北大才子去卖猪肉,大家会不会都拍手点赞呢?!

笑贫不笑“娼”!别再摆谱,别再拿捏着自己的身价了,北大才子卖猪肉估计也会成为常态。

地摊经济重启,社会越发内卷化,后浪们个个压力山大。先来练练滩也不失为一个好办法。


This page is synchronized from the post: ‘你的专业摆地摊能干啥’

周末影院:《倩女幽魂:人间情》,看的是情怀

beauty.jpg

beauty2.jpg

人生 梦如路长
让那风霜 风霜留面上
红尘里 美梦有多少方向
找痴痴梦幻的心爱 路随人茫茫……
—主题曲《路随人茫茫》

《倩女幽魂》这部剧已经有不少版本了,最早好像是大S演的电视剧,后来有了张国荣版的电影,这两部都非常经典!也许爱而不可得的情才是人们心中最深切的体会,也才有了这人鬼情未了!

本着怀旧的心情刷了下剧,感觉还不错。可以看出制作还是挺精致的。尤其部分特效镜头制作精良。豪华宫殿瞬间变废弃鬼屋,美女秒变吓人妖怪都足够惊险刺激的。

也许有了先入为主的心态,感情戏倒也没有特别感动,就是觉得捉妖的戏分还不错,周末休闲必备啊。


This page is synchronized from the post: ‘周末影院:《倩女幽魂:人间情》,看的是情怀’

实现一个买卖合约 / 学习智能合约#11

buy.jpg

用智能合约来实现买卖合约是再恰当不过了! 它是完全的去中介化的、自动执行的合约,也是在一些情景下取代支付宝等中介的好办法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
pragma solidity >=0.5.0 <0.7.0;

contract Purchase {
uint public value;
address payable public seller;
address payable public buyer;

enum State { Created, Locked, Release, Finished }
//定义合约的状态,初始为Created
State public state;

modifier condition(bool _condition) {
require(_condition);
_;
}

modifier onlyBuyer() {
require(msg.sender == buyer);
_;
}

modifier onlySeller() {
require(msg.sender == seller);
_;
}

modifier inState(State _state) {
require(state == _state );
_;
}

event Aborted();
event PurchaseConfirmed();
event ItemReceived();
event SellerRefunded();

//卖家创建合约时需提交物品价格的双倍做为押金。
constructor() public payable {
seller = msg.sender;
value = msg.value / 2;
require((2 * value) == msg.value);
}

//卖家提前终止合约,同时取回押金。
function abort()
public
onlySeller
inState(State.Created)
{
emit Aborted();
state = State.Finished;
seller.transfer(address(this).balance);
}

// 买家确认购买,提交价格+押金(双倍价格)
function confirmPurchase()
public
inState(State.Created)
condition(msg.value == (2 * value))
payable
{
emit PurchaseConfirmed();
buyer = msg.sender;
state = State.Locked;
}

// 买家确认收到商品,取回押金
function confirmReceived()
public
onlyBuyer
inState(State.Locked)
{
emit ItemReceived();
state = State.Release;
buyer.transfer(value);
}

//卖家确认交易完成,取回价格+押金(3倍价格)
function refundSeller()
public
onlySeller
inState(State.Release)
{
emit SellerRefunded();
state = State.Finished;
seller.transfer(3 * value);
}
}

buy2.jpg

结和上图,稍捋一下逻辑:

  1. 由卖家发起合约,将2倍押金打到合约账户,表示要卖东西了。
  2. 买家表示对商品感兴趣,于是也交纳2倍的金额(物价+押金)到合约账户。
  3. 卖家将商品发送给买家。
  4. 买家收到商品后确认,押金自动返还给买家。
  5. 卖家确认交易完成终止合约,同时得到账户的余额(3A)。

同此可见,用智能合约来实现买卖是完全可以去中介化的,而且基于一种内在的动力(有押金的存在)买卖双方是会自动地去完成合约的。如果是一些数字资产,用它来交易是不是比在淘宝上更好呢?!


This page is synchronized from the post: ‘实现一个买卖合约 / 学习智能合约#11’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×