基于区块链的毕业设计Gerbil-ethereum – 沙鼠以太坊

本文提供基于区块链的毕业设计国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,基于区块链的毕业设计Gerbil-ethereum – 沙鼠以太坊 是一篇很好的国外资料


Gerbil-ethereum is a package to interact with the Ethereum network from Gerbil Scheme. It is an alternative to “web3.js” and other interfaces to the Ethereum network; it is not at all a reimplementation of the Ethereum protocol, and relies on an existing node such as Geth or Parity to implement the Ethereum protocol.

Copyright and License

Copyright 2020 Mutual Knowledge Systems, Inc. All rights reserved. Gerbil-Ethereum is distributed under the Apache License, version 2.0. See the file LICENSE.

What does Gerbil Ethereum do?

Gerbil-ethereum provides an interface to an Ethereum node’s JSON RPC server, just like web3.js does, but with Gerbil Scheme as the underlying language platform, rather than node.js or a browser. Notable modules include but are not limited to the below:

  • tx-tracker.ss provides an interface to ensure transactions are posted, no matter what. A tracked transaction will be retried until it succeeds, even if the process crashes and restarts. This is essential for decentralized applications such as atomic swaps or state channels, that require you to post a transaction before a deadline under pain of losing your assets. Messages are scheduled and persisted before they are issued, so that a temporary machine crash or network crash won’t cause you to either forget to post or post twice.

  • assembly.ss provides an assembler for the EVM as an embedded DSL. This assembler can be used directly to write contracts using Scheme functions as a macro-assembler, or it can be used indirectly as the embedded backend of a compiler. Either way, you can achieve more efficient and safer code than by using extremely badly designed languages such as Solidity.

  • batch-send.ss includes a tiny batch transfer contract written in EVM assembly, that allows you to send tokens to many different addresses in a single transaction. This is important in that it allows a single confirmation for multiple transfers, cutting into the runtime latency and build-time complexity to properly track many simultaneous transactions and nurse them to completion in an adversarial network. In the near future, we may also offer a similar contract to batch multiple contract calls.

  • json-rpc.ss offers you a typechecked FFI to all the usual Ethereum JSON RPC APIs.

There are plenty of other support files, and we’ll keep working on this library as we build software on top of it.

Why use Gerbil Ethereum?

  • Better Language, Simpler Code: Gerbil Ethereum can achieve functionality similar to that of libraries in other languages at a fraction of the complexity, because the underlying language is more expressive. First-class continuations and threads enable you to directly express in Scheme massively concurrent computations that require jumping through many hoops in other languages, such as async functions, monads, trampolines, thread pools, factory factories, etc. Scheme’s unique ability for syntactic abstraction not only makes the code much more succint, but also much safer, by protecting the users from errors introduced by developers when they manually follow “design patterns”, or fail to follow them, especially as they subsequently evolve their code. Using prototype object orientation for type descriptors, we can leverage both ad-hoc and parametric polymorphism to factor our code into small pieces of incremental functionality that nicely build on each other, rather than large monolithic pieces of code that constantly repeat each other. In the end, that means not only much less code to write, but even more importantly for cryptocurrency software, much less code to audit.

  • Ecosystem Safety: what makes JavaScript attractive to web developers is its vast ecosystem of software packages, notably distributed via the npm package manager. But to enjoy the benefit of this ecosystem, you’ll soon find yourself pulling hundreds or thousands of libraries from as many unidentified developers. That’s millions of lines of code that no one has the hope to ever audit, what more in a combination that moves too fast for an audit to remain valid very long. Indeed, cryptocurrency wallets have been attacked not just through existing bugs in such libraries, but also through supply chain attacks wherein bad actors took over some remote indirect dependency of a wallet so as to gain access to its users’ assets. By contrast, Gerbil may have fewer libraries, but it includes everything required to interact with Ethereum, except for a few thousand lines of code that can be readily audited, written by a small group of well-identified reputable individuals who have been working on this or similar software for decades, plus a few small well-audited libraries that everyone trusts and use (such as Bitcoin’s secp256k1, Ethereum’s keccak, or Google’s leveldb).

  • Safer Programming Model: with Gerbil Ethereum, we are creating a programming model for building decentralized applications that are safe by construction. Our current code base does not yet offer builtin protection against all the attacks that we are thinking of preventing, yet the programming model it offers is already significantly more robust than that offered by platforms such as web3.js. For instance, we take persist-before-messaging discipline seriously, with persistent activities, proper transactionality, and in the future distributed replication. We also build and test our code with deterministic build tools that ensure that if it works for us, it will work for everyone.

  • Potential Portability: the Gerbil is built on top of Gambit, that has backends to any platform that matters, and could be made to target any future platform that would. In addition to the C platform, it can target JavaScript, Java, PHP, Python, Ruby, and various popular microprocessor architectures. While we haven’t yet taken advantage of this portability with Gerbil ethereum, your odds at building fully audited cryptocurrency software that runs on top of any of these platforms, including JavaScript, are higher if you use a few hundreds of lines of Gambit Scheme to retarget Gerbil Ethereum than if you use web3.js and start auditing millions of lines of JavaScript, or some similar situation with another “blub” language.

We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products. Learn more.




版权所有2020 Mutual Knowledge Systems,Inc.保留所有权利。Gerbil Ethereum是在Apache许可证2.0版下发布的。请参阅文件许可证。


Gerbil以太坊eth提供了一个到以太坊eth节点的JSON-RPC服务器的接口,就像web3.js一样,但是使用Gerbil Scheme作为底层语言平台,而不是节点.js或者一个浏览器。值得注意的模块包括但不限于以下内容:

  • tx-跟踪器.ss提供一个接口,以确保不管发生什么,都可以过帐事务。跟踪的事务将被重试直到成功,即使进程崩溃并重新启动。这对于分散的应用程序(如原子交换或状态通道)非常重要,这些应用程序要求您在最后期限之前过账,以免损失资产。消息在发出之前会被调度和持久化,这样临时的机器崩溃或网络崩溃不会导致您忘记发布或发布两次。
  • 装配.ss为EVM提供一个作为嵌入式DSL的汇编程序。这个汇编器可以直接使用Scheme函数作为宏汇编器编写契约,也可以间接用作编译器的嵌入式后端。无论哪种方式,您都可以获得比使用设计非常糟糕的语言(如Solidity)更高效、更安全的代码。
  • 批处理-发送.ss包括一个用EVM assembly编写的小批量传输契约,它允许您在单个事务中将令牌发送到多个不同的地址。这一点很重要,因为它允许对多个传输进行一次确认,减少了运行时延迟和构建时间复杂性,以便正确地跟踪多个同时发生的事务,并在对抗性网络中完成这些事务。在不久的将来,我们还可能提供类似的合同,批量多个合同电话。
  • json-rpc.ss为所有常见的以太坊ethJSON RPC API提供了一个类型检查的FFI。



  • 更好的语言,更简单的代码:Gerbil以太坊eth可以实现类似于其他语言的库的功能,只需复杂度的一小部分,因为底层语言更具表现力。一流的延续和线程使您能够直接在Scheme中表达大量并发计算,这些计算需要跨越其他语言中的许多难题,如异步函数、单子、蹦床、线程池、工厂工厂等。Scheme独特的语法抽象能力不仅使代码更简洁,但是,更安全的是,通过保护用户不受开发人员在手动遵循“设计模式”或未能遵循这些模式时引入的错误的影响,特别是在他们随后开发自己的代码时。对类型描述符使用面向对象的原型,我们可以利用即席多态和参数多态性将代码分解成小部分的增量功能,这些功能可以很好地相互构建,而不是不断重复的大块代码。最后,这不仅意味着要编写的代码要少得多,而且对于加密货币软件来说更为重要的是,要审计的代码也少得多。
  • 生态系统安全:JavaScript对web开发人员的吸引力在于其庞大的软件包生态系统,尤其是通过
  • 更安全的编程模型:利用Gerbil Ethereum,我们正在创建一个编程模型,用于构建安全的分散应用程序。我们当前的代码库还没有针对我们正在考虑防止的所有攻击提供内置保护,但是它提供的编程模型已经比web3.js等平台提供的模型更加健壮。例如,我们认真对待消息传递前的持久性原则,包括持久性活动、适当的事务性以及将来的分布式复制。我们还使用确定性的构建工具来构建和测试我们的代码,以确保如果它对我们有用,它将适用于所有人。

  • 潜在的可移植性:沙鼠是建立在Gambit之上的,它有任何重要平台的后端,并且可以针对任何未来的平台。除了C平台,它还可以针对JavaScript、Java、PHP、Python、Ruby和各种流行的微处理器架构。虽然我们还没有利用Gerbil ethereum的这种可移植性,但是在任何一个平台(包括JavaScript)上构建经过全面审计的加密货币软件的可能性,如果您使用几百行Gambit Scheme来重定目标Gerbil Ethereum,则会比使用web3.js并开始审核数百万行JavaScript,或使用另一种“blub”语言的类似情况更高。





区块链毕设网(www.interchains.cc)全网最靠谱的原创区块链毕设代做网站 部分资料来自网络,侵权联系删除! 最全最大的区块链源码站 ! QQ3039046426
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 基于区块链的毕业设计Gerbil-ethereum – 沙鼠以太坊


立即查看 了解详情