【区块链学习笔记-03】使用python 和 智能合约进行交互
之前使用trufle console 进行了合约交互,其实如果使用python或者js的话,也有相应的类库
python:https://web3py.readthedocs.io/
JavaScript:https://web3js.readthedocs.io/
实现的目标
链接测试eth网络
测试基本信息
实现eth网络间转账
实现eth指定地址转账
和eth智能合约进行交互
链接eth测试网络先测试下链接
1234567from web3 import Web3w3 = Web3(Web3.HTTPProvider("http://127.0.0.1:7545"))print(w3.isConnected())# True
输出 True ,那么就是成功的。这里的http://127.0.0.1:7545 是我使用Ganache来运行在本地的eth网络环境。你也可以使用 https://infura.io/ 这类线上的环境。
跑起来之后,可以看到我的默认第一个区块的账号是
0x0374AD83DfEB8cfD94889631255AE43B2Aa9 ...
【区块链学习笔记-02】使用trufflesuite部署一个合约
本教程是使用trufflesuite部署一个metacoin的教程总结
本地跑Eth网络使用 http://trufflesuite.com/ganache 跑本地Eth的网络节点
部署Metamask到本地创建文件夹12mkdir MetaCoincd MetaCoin
下载metacoin1234# truffle 下载truffle unbox metacoin# 或者直接github下载,上面可能被墙git clone git@github.com:trufflesuite/metacoin-playground.git
查看下载的文件目录
123456789101112131415.├── LICENSE├── contracts│ ├── ConvertLib.sol│ ├── MetaCoin.sol #定义了metacoin这个币,主文件│ ├── MetaCoinLargeBalance.sol│ └── Migrations.sol├── migrations│ ├── 1_init ...
【区块链学习笔记-01】DAPP智能合约开发应用
初学以太坊智能合约直接打开 http://trufflesuite.com/tutorial/index.html 有新手指导区,英语好的老板可以直接参考原文,下面是根据教程加上我的体验进行的翻译和实践记录。
这个教程可以让你体验做一个dapp宠物商店(pet shop),通过这个教程可以完整的体验一次合约的开发。
这个教程主要会让我们体验这么几个过程
设置开发环境
使用 Truffle Box 创建 Truffle 项目
编写智能合约
编译和迁移智能合约
测试智能合约
创建用户界面以与智能合约交互
在浏览器中与 dapp 交互
设置开发环境需要安装
Nodejs
Git
上述两个安装完成之后,npm安装 truffle
12345# 安装trufflenpm install -g truffle# 确认是否安装完成truffle version
使用 Truffle Box 创建 Truffle 项目123456# 新建文件夹mkdir pet-shop-tutorial# 进入文件夹cd pet-shop-tutorial# 使用truffle 创建项目框架truffle ...
Nextcloud docker安装手记
安装docker1234567#Ubuntu 20.04 LTSapt install docker.io# 或者 curl -fsSL <https://test.docker.com> -o test-docker.shsh test-docker.sh
输入 docker ps 看到输出就安装完成了
使用Docker安装Nextcloud1234# <https://github.com/nextcloud/docker># 映射到公网8080端口,volume映射到~/nextcloud 目录mkdir ~/nextclouddocker run -d -p 8080:80 -v ~/nextcloud:/var/www/html nextcloud
输入 docker ps
看到如下的就安装好了
打开腾讯云防火墙端口登陆腾讯云 → 轻量应用服务器 → 防火墙 →添加规则
打开等一会,然后访问 ip:8080。例如你的轻量服务器ip是1.1.1.1 那么域名就是 1.1.1.1:8080 去访问就能访问你的nextcloud了,第一次访问会让你安装一 ...
重新整理了博客
最近重新整理了博客,也没有做新的东西,算是一个新的开始吧
wordpress新的编辑器还是蛮好用的,第一次尝试
树莓派折腾记
树莓派折腾记
今天是国庆,心血来潮,把吃会了三年的树莓派拿出来玩
放了三年,居然还是好好的。。主要都是放在盒子里,盒子吃灰
下载系统官网下载
看你自己喜欢,我懒,就直接下载了第一个。其实只要命令行的话,可以直接下载第三个lite版本。这里没有细的去测试。
安装系统因为我现在使用mac,搜了一下,决定使用 Etcher来刷入系统。
点击下载:https://etcher.io
插上SD卡,根据软件一步一步来,直接就搞定了。
刷入之后,最新版本的树莓派,没办法直接ssh链接,需要先在boot目录下新建一个ssh文件夹。这样才能正常ssh。
默认账号密码是
账号:pi
密码:raspberry
ssh的ip你可以通过路由器来查看。
然后mac下,在iterm2中直接ssh到树莓派
ssh pi@192.168.50.181
看了下内核还是非常的新。
然后想更新下软件的源,但是速度非常的慢。。。所以替换一下国内的镜像源好了。
替换源备份源sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
更改源为USTC源sudo n ...
拯救新浪图床
拯救新浪图床
众所周知的原因,新浪图床挂掉了。以前一直依赖他,现在挂掉了,还是那句话,免费的总是最贵的。 早上花了一点时间总结了下现在可以替换的方法。
治标不治本的方法替换数据库数据可以在数据库中 通过 SQL 命令,把所有 ww1 ww2 ww3 ws1 开头的链接改成 tva1 开头
1UPDATE wp_posts SET post_content = REPLACE (post_content, 'ww1', 'tva1');
header替换方法在 header.php中添加
1<meta name="referrer" content="no-referrer" />
一劳永逸的方法
我直接用腾讯云了。懒得折腾,当然也有人用别的比如下面的。
SM图床
github图床
阿里云oss
腾讯云ocs
等等等
先导出数据,主要是wp_posts这个表的数据,导出为db_2019-06-12.sql,我写了一个脚本匹配出所有的新浪图片的地址,代码很简单,就一个正则
1234567 ...
mac下我的个人笔记策略
主要推荐2个工具
Typora 直接书写
picGo
TyporaTypora 应该是mac下我个人感觉最好用的markdwon工具了,没有之一。我更换了类似bear的皮肤,大家喜欢的话可以直接去官网下载,而且他也支持自定义修改,只需要会一点css即可。现在还支持直接看到文件列表或者是文章的目录。我搭配使用dropbox或者icloud,然后根据文件夹,即可自动在云端同步。
picGo搭配picGo,能够非常灵活的将图片存储到自己的云端。我大概再也不会想把图片存到杂七杂八的免费云空间了,图片都会掉光光。诶。非常的难过啊。 所以还是非常有必要将所有的图片存到自己的目录下。
改变create-react-app默认端口
ReactJS: Changing Default Port 3000 in create-react-app总共有三种方法
配置全局变量
配置 package 文件
创建 .env
1)配置全局变量
1export PORT=8000
配置 package 文件
12345678…"scripts": {"start": “PORT=8000 react-scripts start","build": "react-scripts build","test": "react-scripts test --env=jsdom","eject": "react-scripts eject"}…
3.创建 .env
1PORT=8000
参考ReactJS: Changing Default Port 3000 in create-react-app
react中不使用bind
Losing bind(this) in react.md普通的写法1234567891011121314151617181920212223242526import React, { Component } from "react";class ButtonWithBind extends Component {constructor() {super();this.state = { toggle: false };}toggleButton() {this.setState(prevState => ({ toggle: !prevState.toggle }));}render() {const toggle = this.state.toggle;return (<div> <button onclick="{this.toggleButton}"> ...