主页

区块链 — 以太坊简介

一、为什么要学习以太坊 庞大的开发者社区,目前最大的区块链开发平台 相对成熟,有代表性,资料众多 以应用入手,学习曲线不那么陡峭 与 JavaScript 结合紧密,方便开发人员上手 二、开发涉及的工具 MetaMask:浏览器插件钱包 Remix:基于浏览器的 Solidity 在线编译器 Geth:以太坊客户端(go 语言) web3.js:以...

阅读更多

区块链 — 原理与代码实现

import hashlib import json from uuid import uuid4 import requests from time import time from urllib.parse import urlparse from flask import Flask, jsonify, request from argparse import ArgumentPars...

阅读更多

区块链 — 基本概念与应用场景

基本概念 1. 去中心化应用(DApp) 传统的网络应用,都会有一个服务端程序,多个客户端链接到这个服务端,叫做「中心化应用」。 点对点(P2P)应用中并不存在对网络完全控制的中心节点,这类应用成为「去中心化应用」。 但去中心化应用有数据被篡改的风险,所以引入「一致性协议」。 2. DApp 的内部货币 维持DApp节点的正常运行需要费用(硬件、网络等)==》「内部货币」。 每...

阅读更多

微服务 — API Gateway

什么是 API Gateway? API Gateway 是微服务架构体系中的一类型特殊服务,它是所有微服务的入口,它的职责是执行路由请求、协议转换、聚合数据、认证、限流、熔断等。 一个系统可以有一个或多个 API Gateway,例如 Gateway 的指责 1. 请求路由和版本控制 API Gateway 是微服务的入口,可以根据不同的请求路由到不同的 microser...

阅读更多

左神 — 栈和队列

1. 设计一个有 getMin 功能的栈 题目 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 要求 pop、push、getMin 操作的时间复杂度都是 O(1) 设计的栈类型可以使用现成的栈结构 思路一 使用两个栈,一个栈保存当前栈中的元素,一个栈保存最小值。 private Stack<Integer> stackDa...

阅读更多

算法 — 二分查找

二分查找对具有指定左索引和右索引的连续序列进行操作。 二分查找维护查找空间的左、右和中间指示符,并比较查找目标或将查找条件应用于集合的中间值;如果条件不满足或值不相等,则清除目标不可能存在的那一半,并在剩下的一半上继续查找,直到成功为止。如果查以空的一半结束,则无法满足条件,并且无法找到目标。 一、 模板 I Leetcode - 704 Binary Search (Easy) 给...

阅读更多

Redis - 文章投票系统

将文章信息存储在 Redis 中,每个文章又一个 ID,使用散列(Hash)存储文章,为了产生一个能够随着时间流逝而不断减少的评分,程序需要根据文章的发布时间和当前时间来计算文章的评分,具体计算方法为:将文章得到的支持票数量乘以一个常量,然后加上文章的发布时间,得出的结果就是文章的评分。 使用有序集合(Zset)记录文章发布的时间和文章的得分,为了避免相同用户对同一篇文章投票,需要使用集合...

阅读更多

Python - 进阶学习

一、闭包 简单理解,闭包就是一个定义在函数内部的函数,闭包使得变量即使脱离了该函数的作用域也依然能被访问到。 函数身为第一类对象,它可以作为函数的返回值返回。 def print_msg(): # print_msg 是外围函数 msg = "zen of python" def printer(): # printer 是嵌套函数 ...

阅读更多