存档

2018 年 03 月 - 3 文章

以太坊 JavaScript API web3.js 打币

ABI 简介 关于什么是 ABI(Application Binary Interface)请看官网文档。简单来说 ABI 就是外界和合约交互的方式: ABI 用 JSON 描述合约的接口定义用约定好的编码方式进行实际调用 做过 RPC 的同学可以理解为这就是异构平台的 RPC 实现,需要进行接口定义、存根生成、寻址、序列化、网络通讯等步骤就能调用到合约上的函数了。 ABI 的实例请看这里。 web3.js 简介 web3.js 是以太坊 JavaScript API 的官方实现,用它来和以太坊节点进行可编程通讯,基于 HTTP 或 IPC 连接。简单来说 web3.js 就是可以通过 JavaScript 调用本地或远程的以太坊节点,完成网络管理、账户管理、交易等操作。 下面的代码示例基于 web3.js v1.0 开发,请注意不同版本之间的差异。 同步区块 人们都说以太坊发币最大的技术难点就是同步区块,一点儿没错! 试了 ETHFANS 星火计划提供的静态节点也不行,最后还是放弃本地电脑同步,主要问题是我家这里的网络质量太差,很多时候藕断丝连。 后来在阿里云海外节点开了台服务器几....

More...

以太坊同步一直“卡着”的原因

用 geth 下载区块数据基本完成(基本追平当前区块高度),如果日志还一直刷如下两句: Imported new state entries .... Stalling state sync, dropping peer 那说明区块数据确实差不多已经跟上最新数据了,但是状态数据还差很多,正在同步。 如果你同步了很久(比如一两天)还是落后主网几十个块,那说明可能是你的磁盘性能不足,因为状态数据同步的瓶颈在磁盘 IO,不在带宽,换个 SSD 再同步就好。 如果你要同步全节点,那一定要用 SSD 磁盘,详细解释说明请看这里。 在区块高度 5244801 时同步完成大概是这么个情况:

More...

MySQL 迁移 utf8 到 utf8mb4

MySQL 版本和驱动 MySQL 至少是 5.5.3+mysql-connector-java 至少是 5.1.13,修改连接串参数 characterEncoding=UTF-8 历史数据迁移 生成表字符迁移 SQL: SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;' ) AS mySQL FROM INFORMATION_SCHEMA. TABLES WHERE TABLE_SCHEMA = 'your_schema' 生成后执行一把,这样表和列的字符集就改完了。我这里通过修改表的字符集就自动修改列的了,最好自己确认下列是否已经改对。 修改库字符集: ALTER DATABASE your_schema CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; 上面示例代码中的 COLLATE(排序规则)请按需修改。 关于连接串参数 characterEn....

More...