Skip to content
Write once, run forever. Deploy robust, scalable, decentralized WebAssembly applications on Wavelet.
Go JavaScript Shell Other
Branch: master
Clone or download
losfair and iwasaki-kenta Contract-related caching optimizations. (#159)
* contract, ledger, lru, protocol, tree: Move out LRU into a separate package and cache compiled contracts.

* contract: Enforce gas limit on cached VMs.

* contract_test: Add benchmark for applying contract transactions in a graph.
Latest commit d3ea77f Aug 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api Improve nops broadcasting. (#150) Aug 7, 2019
avl Contract-related caching optimizations. (#159) Aug 17, 2019
cmd Improve autocompletion indexing using a radix tree. (#149) Aug 8, 2019
debounce Fix debounce limiter timer related test. (#130) Jul 17, 2019
internal/snappy all: adopt mit license May 27, 2019
log Preserve globals of smart contracts into account state. (#151) Aug 6, 2019
lru Contract-related caching optimizations. (#159) Aug 17, 2019
scripts cmd/graph: fix compile error Jun 26, 2019
site Fixed /accounts not plural. (#164) Aug 17, 2019
store utils: fix failing TestSelectPeers (#141) Jul 25, 2019
sys all: v0.1.1 Aug 13, 2019
testdata all: update license, and merge master in Jul 24, 2019
wctl add debouncing to ws logs Jun 10, 2019
.codecov.yml all: update license, and merge master in Jul 24, 2019
.dockerignore tx, tx/processor, ledger, graph, db, contract, log, cmd/wavelet, api:… Apr 20, 2019
.gitignore avl: implemented buffer pooling specifically targeting serialization (#… Jul 26, 2019
.travis.yml all: update license, and merge master in Jul 24, 2019
Dockerfile all: adopt mit license May 27, 2019
LICENSE all: adopt mit license May 27, 2019
Makefile all: adopt mit license May 27, 2019
README.md Update README.md Jun 27, 2019
accounts.go Improve nops broadcasting. (#150) Aug 7, 2019
accounts_test.go all: adopt mit license May 27, 2019
collapse.go all: update license, and merge master in Jul 24, 2019
common.go Preserve globals of smart contracts into account state. (#151) Aug 6, 2019
contract.go Contract-related caching optimizations. (#159) Aug 17, 2019
contract_test.go Contract-related caching optimizations. (#159) Aug 17, 2019
db.go Preserve globals of smart contracts into account state. (#151) Aug 6, 2019
db_test.go cmd/wavelet: have `pay` command automatically set gas limit to accoun… Jun 23, 2019
genesis.go Prefer values over heap-allocated values, simplify memory model, and … Jul 18, 2019
go.mod Improve autocompletion indexing using a radix tree. (#149) Aug 8, 2019
go.sum Improve autocompletion indexing using a radix tree. (#149) Aug 8, 2019
gossip.go Prefer values over heap-allocated values, simplify memory model, and … Jul 18, 2019
graph.go graph: use correct constant for not checking the completeness of tran… Aug 8, 2019
graph_test.go graph: Fix validateTransaction skipping a parent (#136) Jul 23, 2019
index.go Improve autocompletion indexing using a radix tree. (#149) Aug 8, 2019
ledger.go Contract-related caching optimizations. (#159) Aug 17, 2019
ledger_test.go Improve nops broadcasting. (#150) Aug 7, 2019
log.go Add JSON payload file support for send_transaction wctl command. (#116) Jul 4, 2019
metrics.go all: adopt mit license May 27, 2019
pool.go all: adopt mit license May 27, 2019
protocol.go Contract-related caching optimizations. (#159) Aug 17, 2019
round.go Prefer values over heap-allocated values, simplify memory model, and … Jul 18, 2019
rounds.go all: adopt mit license May 27, 2019
rounds_test.go Prefer values over heap-allocated values, simplify memory model, and … Jul 18, 2019
rpc.pb.go all: adopt mit license May 27, 2019
rpc.proto all: adopt mit license May 27, 2019
snowball.go Prefer values over heap-allocated values, simplify memory model, and … Jul 18, 2019
snowball_test.go all: adopt mit license May 27, 2019
testutil.go Improve nops broadcasting. (#150) Aug 7, 2019
tx.go wavelet, cmd: refactor payload marshaling (#139) Jul 25, 2019
tx_applier.go wavelet, cmd: refactor payload marshaling (#139) Jul 25, 2019
tx_applier_test.go wavelet, cmd: refactor payload marshaling (#139) Jul 25, 2019
tx_json.go all: update license, and merge master in Jul 24, 2019
tx_json_test.go tx/json/test: add copyright notice Jul 24, 2019
tx_payload.go tx/payload/contract: write gas limit and gas deposit even if func nam… Jul 27, 2019
tx_payload_test.go wavelet, cmd: refactor payload marshaling (#139) Jul 25, 2019
tx_test.go all: adopt mit license May 27, 2019
utils.go Ledger state syncing / pull missing transactions - minor cleanup and … Jul 17, 2019
utils_test.go Improve nops broadcasting. (#150) Aug 7, 2019
vote.go Ledger state syncing / pull missing transactions - minor cleanup and … Jul 17, 2019

README.md

Wavelet

GoDoc Discord MIT licensed Build Status Go Report Card Coverage Statusd

wavelet is an open ledger for scalable, mission-critical, decentralized WebAssembly applications.

Wavelet's very first protocol specification was written by Kenta Iwasaki and Heyang Zhou. This repository serves as Wavelet's initial Go implementation written by the Perlin team.

Refer to the docs located here to learn how to locally setup your own three-node cluster, to learn how to write and deploy your very first WebAssembly smart contract, or to learn how Wavelet actually works.

We're hiring!

Here at Perlin, we spend days and weeks debating, tinkering, and researching what is out there in academia to bring to industries truly resilient, open-source, secure, economic, and decentralized software to empower companies, startups, and users.

Our doors are open to academics that have a knack for distributed systems, engineers that want to explore unknown waters, frontend developers that want to make and evangelize the next generation of customer-facing applications, and graphics designers that yearn to instrument together greater user experiences for decentralized applications.

Contributions

First of all, thank you so much for taking part in our efforts for creating the ultimate decentralized ledger.

All code contributions to wavelet should comply with all idiomatic Go standards listed here.

All commit messages should be in the format:

module_name_1, module_name_2: description of the changes you made to the two
    modules here as a sentence

Be sure to use only imperative, present tense within your commit messages and optionally include motivation for your changes two lines breaks away from your commit message.

This allows other maintainers and contributors to know which modules you are modifying/creating within the code/docs repository.

Lastly, if you'd like to talk to us or any of the team in real-time, be sure to join our Discord server!

We are heavily active, ready to answer any questions/assist you with any code/doc contributions at almost any time.

License

wavelet, and all of its source code is released under the MIT License.

You can’t perform that action at this time.