legochain:Common LIsp中的简单教育区块链

  • z1_136914
    了解作者
  • 9.8KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-26 01:28
    上传日期
链式 这是什么? 这个简单的程序实现了一个有效的区块链类(基于具有一定难度级别的块挖掘)以及一个非常简单的“点对点”协议,该协议使两个或更多服务器能够基于TCP套接字相互通信并发送/接收其区块链。 。 这是一个简单的项目,具有以下目标: 目标A 为了向Common Lisp展示新手知识,它是一个如何实现不太简单但不太复杂的东西(例如区块链)的示例,其中涉及到以下方面的使用: 使用密码术 正则表达式,使用 插座,使用 ,特别是使用泛型函数和多重调度,使代码更简单。 该代码编写时带有尽可能多的注释,并且尽我所能地使代码清晰。 目的不是性能,也不是生产质量,而是教育价值。 您可以先查看 ,然后再进入 目标B 为了展示经验丰富的CL开发人员,他们仍然尚未发现什么是区块链,进行区块挖掘和“即刻”值,请看一下代码,简单地回答一下。 支持的功能 将任何类型的数据添加到块的有效载荷中。
legochain-master.zip
  • legochain-master
  • package.lisp
    189B
  • legochain.lisp
    10.7KB
  • README.md
    2.6KB
  • legochain.asd
    689B
  • peertopeer.lisp
    12.6KB
  • .gitignore
    158B
内容介绍
# legochain ## What is this? This simple program implements a working blockchain class (*based on block mining with a difficulty level*) plus a very simple "peer to peer" protocol that enables two or more servers to talk to each other and send/receive their blockchains, based on TCP sockets. This is a simple project with the following goals, either: ### Goal A To show newcomers to Common Lisp, an example of how to implement something not so simple but not too complex, like a blockchain, that would involve the use of: - Cryptography, using [ironclad](https://github.com/sharplispers/ironclad) - Regular expressions, using [cl-ppcre](https://edicl.github.io/cl-ppcre/) - Sockets, using [usocket](https://github.com/usocket/usocket) - [The Common Lisp Object System](http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html), specifically the use of generic functions and multiple dispatch, to make the code a bit simpler. The code is written with as many comments as possible, and is as clear as I can manage to. The aim was not performance, nor production-quality, but educational value. You can start by taking a look at [legochain.lisp](legochain.lisp) and then to [peertopeer.lisp](peertopeer.lisp) ### Goal B - To show seasoned CL developers who still haven't yet found out what is a blockchain, block mining, and the "nonce" values, a simple answer by looking at the code. ## Supported features - Add any kind of data to the block's payload. You only need to define the encoding for the payload using `conspack:defencoding` (see the code) - Verification of one blockchain against other, rejecting invalid blockchains - Verification of the continuity (soundness) of each blocks' hash value and sequence value Peer to peer supported operations: - Send blockchain to peer - Request blockchain from peer - Say "hi" to peer. You can start many peers from your same machine so you can experiment adding more features to the code. ## How to install (for newcomers to CL) - Install [Portacle](https://portacle.github.io/), the portable Common Lisp environent. - Clone this project into the *projects* subdirectory under the portacle root directory, so you have it into `/portacle/projects/legochain`. - Start portacle - Write `(ql:quickload "legochain")` to load the program. - All the functions are in package "legochain". - Try `(legochain::servers-test 9000 9001)` to make two blockchain servers talk to each other (a simple demo.) ## Author Flavio Egoavil aka D e f u n k y d r u m m e r License MIT # Hacking I'm always open to pull requests that can make the code more readable or more educational!
评论
    相关推荐
    • regex-arg:节点。 将arg解析为安全的正则表达式
      使用来确保用户提供的正则表达式无法关闭服务器。 var re = require ( 'regex-arg' ) var string = "/hi/i" re ( string ) . test ( "HI" ) === true api regexArg = require('regex-arg') regexArg(字符串,...
    • 正则表达式
      正则表达式,学习相关资料,主要是自己看的。。。
    • 正则表达式收集
      NULL 博文链接:https://szxiaoli.iteye.com/blog/1709631
    • 正则表达式作弊
      首先,运行开发服务器: npm run dev # or yarn dev 使用浏览器打开以查看结果。 您可以通过修改pages/index.js来开始编辑页面。 当您编辑文件时,页面会自动更新。 可以在上访问。 可以在pages/api/hello.js...
    • 正则表达式案例学习文档
      本教程包是本人的学习素材积累 还有部分相关的C#代码 看完之后,可以使你的到达正则表达式的中级水平
    • 正则表达式简介
      身份验证常用正则表达式,各种正则表达式详解。
    • VC 正则表达式测试器.zip
      VC 正则表达式测试器是一个主要适用于C 编程环境,正则表达式是一种对字符进行模糊匹配的一个公式。在数据有效性验证,查找,替换文本中都可以使用正则表达式 。 当然其它语言环境也可以用,不过有时候会不准确,...
    • 正则表达式
      学习构造正则表达式引擎
    • 正则表达式技术的内容
      正则表达式技术的内容,正则表达式技术的内容正则表达式技术的内容
    • 正则表达式
      正则表达式