恋恋风辰的个人博客


  • Home

  • Archives

  • Categories

  • Tags

  • Search

golang(01) linux环境搭建和编码

Posted on 2019-03-20 | In golang

1 在自己的工作目录下建立一个goproject文件夹

/home/secondtonone/goproject

2 在文件夹下建立如下三个文件

bin pkg src
bin 保存执行go install 源码目录后生成的可执行文件
pkg 文件夹是存在go编译生成的文件
src存放的是我们的go源代码,不同工程项目的代码以包名区分

3 安装go

去国内的网站下载https://studygolang.com/dl 根据不同的平台选择对应的安装包
然后将压缩包解压到 /usr/local/
sudo tar -C /usr/local/ -xzvf go1.10.2.linux-amd64.tar.gz

Read more »

eocs跨链合约区块数据结构设计与实现

Posted on 2019-03-15 | In 区块链

核心数据结构分析

1
2
3
4
5
6
struct block_header {
block_timestamp_type timestamp;
account_name producer;
//省略部分结构......
static uint32_t num_from_id(const block_id_type& id);
}

结构体中timestamp是块打包好的时间戳,previous是前一个块的id,transaction_mroot表示所有交易的merkle root, action_root表示 action的merkle root。
num_from_id通过blockid找到blocknum。

Read more »

python学习(28) 浅谈可变对象的单例模式设计

Posted on 2019-03-13 | In python

python开发,有时候需要设计单例模式保证操作的唯一性和安全性。理论上python语言底层实现和C/C++不同,python采取的是引用模式,当一个对象是可变对象,对其修改不会更改引用的指向,当一个对象是不可修改对象,对其修改会改变引用指向。

可变对象和不可变对象

不可变对象

该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。

可变对象

该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变。

python 中的可变对象和不可变对象

Python中,数值类型(int和float)、字符串str、元组tuple都是不可变类型。
而列表list、字典dict、集合set,以及开发人员自己定义的类是可变类型

Read more »

EOCS中继网络源码剖析

Posted on 2019-02-17 | In 区块链

EOCS中继网络实现了两种模式,分别是eoc模式和icp模式,今天先介绍eoc模式。

eoc_relay_plugin 源码剖析

Read more »

EOCS跨链核心技术内幕

Posted on 2019-02-11 | In 区块链

EOCS跨链技术的核心就是ICP模块,ICP即Inter Chain Protocol(跨链交互协议),下面着重介绍ICP工作原理和实现细节。

Inter Chain Protocol(ICP)

ICP Overview

建立于EOSIO软件堆栈之上的ICP跨链基础设施,可应用于EOSIO兼容的同构区块链的跨链通信。ICP设计之初,就考虑怎样以一种无侵入、可安全验证、去中心化的方式来实现EOS多链并行的同构跨链网络。经过对业界最前沿的跨链技术的研究(包括BTC Relay、Cosmos、Polkadot等),并结合对EOSIO软件实现细节的差异化剖析,ICP采取了比较现实的跨链方案:

实现类似于轻节点的跨链基础合约,对对端区块链进行区块头跟随和验证,使用Merkle树根和路径验证跨链交易的真实性,依赖全局一致的顺序来保证跨链交易同时遵循两条链的共识。

实现无需信任、去中心化的跨链中继,尽最大可能地向对端传递区块头和跨链交易,并对丢失、重复、超时、伪造的跨链消息进行合适的处理。

Read more »

EOCS框架概述和剖析

Posted on 2019-02-10 | In 区块链

什么是EOCS?

EOCS(Enterprise Operation Cross System),是一个基于eosio底层框架实现的企业级跨链操作系统,旨在实现和EOS主链通信的并行链,是真正意义的跨链,支持高效稳定的跨链交易,为跨链生态建设提供更稳定和安全的平台。作为可与EOS主链交互操作的第一条并行链,EOCS Chain力图实现安全可靠、快捷便利的跨链资产转移、跨链智能合约调用。任何人都可以在EOCS Chain并行链上开发或使用跨链DAPP。

为什么选择EOCS?

互操作性

EOCS Chain并行链允许EOS主链与主流公有链、联盟链、私有链互相通信和价值交换。

可扩展性

通过多链互联互操作,EOCS Chain可帮助EOS实现史无前例的无限扩展。

开发友好性

EOCS Chain延续了EOS软件堆栈的WebAssembly机制,可以非常轻松地开发DAPP。

Read more »

eos交易同步过程和区块生产过程源码分析

Posted on 2019-01-30 | In 区块链

交易同步过程

1 通过命令cleos调用 cleos transfer ${from_account} ${to_account} ${quantity} 发起交易
2 eos调用chain_plugin 的push_transaction,内部调用注册好的方法。

1
app().get_method<incoming::methods::transaction_async>();
Read more »

eos 源码net_plugin分析

Posted on 2019-01-25 | In 区块链

1 net_plugin_impl::connect(connection_ptr c) 函数用于解析地址,内部异步回调async_resolve

Read more »

eos节点启动源码分析

Posted on 2019-01-22 | In 区块链

在eos源码目录中programs/nodeos/main.cpp文件里,为节点启动的主函数
main函数内部做了两件事
1 初始化 application

1
2
if(!app().initialize<chain_plugin, http_plugin, net_plugin, producer_plugin>(argc, argv))
return INITIALIZE_FAIL;

2 application启动和插件启动

1
2
app().startup();
app().exec();
Read more »

python学习(27) 利用selenium 抓取淘宝内衣秀

Posted on 2019-01-04 | In python

selenium 是Web应用测试工具,可以利用selenium和python,以及chromedriver等工具实现一些动态加密网站的抓取。本文利用这些工具抓取淘宝内衣评价买家秀图片。

准备工作

下面先安装selenium,在命令行输入python,然后输入安装命令

1
pip install selenium
Read more »
<1…272829…37>

370 posts
17 categories
21 tags
RSS
GitHub ZhiHu
© 2025 恋恋风辰 本站总访问量次 | 本站访客数人
Powered by Hexo
|
Theme — NexT.Muse v5.1.3