Skip to content
  1. Jul 03, 2018
  2. Jun 29, 2018
  3. Jun 28, 2018
    • Arkadiy Paronyan's avatar
      State pruning (#216) · 70f1460c
      Arkadiy Paronyan authored
      * Started work on state db
      
      * Updated for a new hash type
      
      * Pruning and tests
      
      * Generalize on the block hash/key type
      
      * Integrate with the client backend
      
      * Merge w master
      
      * CLI options
      
      * Updated for light client refactoring
      
      * Used IntoIterator
      
      * Fixed invalid input hadling
      70f1460c
  4. Jun 26, 2018
    • Tomasz Drwięga's avatar
      Handle AccountIndices in transaction pool (#225) · e596a1be
      Tomasz Drwięga authored
      * Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
      
      * Update wasm.
      
      * consensus, session and staking all panic-safe.
      
      * Democracy doesn't panic in apply.
      
      * Fix tests.
      
      * Extra helper macro, council depanicked.
      
      * Fix one test.
      
      * Fix up all council tests. No panics!
      
      * Council voting depanicked.
      
      * Dispatch returns result.
      
      * session & staking tests updated
      
      * Fix democracy tests.
      
      * Fix council tests.
      
      * Fix up polkadot parachains in runtime
      
      * Fix borked merge
      
      * More Slicable support
      
      Support general `Option` and array types.
      
      * Basic storage types.
      
      * Existential deposit for contract creation
      
      * Basic implemnetation along with removals
      
      * Fix tests.
      
      * externalities builder fix.
      
      * Tests.
      
      * Fix up the runtime.
      
      * Fix tests.
      
      * Add generic `Address` type.
      
      * Initial function integration of Address into Extrinsic.
      
      * Fix build
      
      * All tests compile.
      
      * Fix (some) tests.
      
      * Fix signing.
      
      * Push error.
      
      * transfer can accept Address
      
      * Make Address generic over AccountIndex
      
      * Fix test
      
      * Make Council use Address for dispatch.
      
      * Fix build
      
      * Bend over backwards to support braindead derive.
      
      * Repot some files.
      
      * Fix tests.
      
      * Fix grumbles
      
      * Remove Default bound
      
      * Fix build for new nightly.
      
      * Make `apply_extrinsic` never panic, return useful Result.
      
      * More merge hell
      
      * Doesn't build, but might do soon
      
      * Serde woes
      
      * get substrate-runtime-staking compiling
      
      * Polkadot builds again!
      
      * Fix all build.
      
      * Fix tests & binaries.
      
      * Reserve some extra initial byte values of address for future format changes
      
      * Make semantic of `ReservedBalance` clear.
      
      * Fix panic handler.
      
      * Integrate other balance transformations into the new model
      
      Fix up staking tests.
      
      * Fix runtime tests.
      
      * Fix panic build.
      
      * Tests for demonstrating interaction between balance types.
      
      * Repot some runtime code
      
      * Fix checkedblock in non-std builds
      
      * Get rid of `DoLookup` phantom.
      
      * Attempt to make transaction_pool work with lookups.
      
      * Remove vscode settings
      
      * New attempt at making transaction pool work.
      
      * It builds again!
      
      * --all builds
      
      * Fix tests.
      
      * New build.
      
      * Test account nonce reset.
      
      * polkadot transaction pool tests/framework.
      
      * Address grumbles.
      
      * Pool support non-verified transactions.
      
      * Revert bad `map_or`
      
      * Rebuild binaries, workaround.
      
      * Avoid casting to usize early.
      
      * Make verification use provided block_id.
      
      * Fix tests.
      
      * Alter tests to use retry.
      
      * Fix tests & add call to re-verify.
      
      * Semi-refactor.
      
      * Integrate new queue with the rest of the code.
      
      * Fix tests.
      
      * Add reverify_transaction method.
      
      * Use result.
      e596a1be
  5. Jun 21, 2018
    • Gav Wood's avatar
      Dump genesis to JSON file (#218) · ff960d85
      Gav Wood authored
      * Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
      
      * Update wasm.
      
      * consensus, session and staking all panic-safe.
      
      * Democracy doesn't panic in apply.
      
      * Fix tests.
      
      * Extra helper macro, council depanicked.
      
      * Fix one test.
      
      * Fix up all council tests. No panics!
      
      * Council voting depanicked.
      
      * Dispatch returns result.
      
      * session & staking tests updated
      
      * Fix democracy tests.
      
      * Fix council tests.
      
      * Fix up polkadot parachains in runtime
      
      * Fix borked merge
      
      * More Slicable support
      
      Support general `Option` and array types.
      
      * Basic storage types.
      
      * Existential deposit for contract creation
      
      * Basic implemnetation along with removals
      
      * Fix tests.
      
      * externalities builder fix.
      
      * Tests.
      
      * Fix up the runtime.
      
      * Fix tests.
      
      * Add generic `Address` type.
      
      * Initial function integration of Address into Extrinsic.
      
      * Fix build
      
      * All tests compile.
      
      * Fix (some) tests.
      
      * Fix signing.
      
      * Push error.
      
      * transfer can accept Address
      
      * Make Address generic over AccountIndex
      
      * Fix test
      
      * Make Council use Address for dispatch.
      
      * Fix build
      
      * Bend over backwards to support braindead derive.
      
      * Repot some files.
      
      * Fix tests.
      
      * Fix grumbles
      
      * Remove Default bound
      
      * Fix build for new nightly.
      
      * Make `apply_extrinsic` never panic, return useful Result.
      
      * More merge hell
      
      * Doesn't build, but might do soon
      
      * Serde woes
      
      * get substrate-runtime-staking compiling
      
      * Polkadot builds again!
      
      * Fix all build.
      
      * Fix tests & binaries.
      
      * Reserve some extra initial byte values of address for future format changes
      
      * Make semantic of `ReservedBalance` clear.
      
      * Fix panic handler.
      
      * Integrate other balance transformations into the new model
      
      Fix up staking tests.
      
      * Fix runtime tests.
      
      * Fix panic build.
      
      * Tests for demonstrating interaction between balance types.
      
      * Repot some runtime code
      
      * Fix checkedblock in non-std builds
      
      * Get rid of `DoLookup` phantom.
      
      * Attempt to make transaction_pool work with lookups.
      
      * Remove vscode settings
      
      * New attempt at making transaction pool work.
      
      * It builds again!
      
      * --all builds
      
      * Fix tests.
      
      * New build.
      
      * Test account nonce reset.
      
      * polkadot transaction pool tests/framework.
      
      * Initial draft (working).
      
      * Address grumbles.
      
      * Revert bad `map_or`
      
      * Rebuild binaries, workaround.
      
      * Avoid checking in vscode
      
      * reconnecting, shared, slog
      
      * CLI options for name and telemetry url
      
      * ensure telemetry url imples enabled
      
      * Avoid casting to usize early.
      
      * Provide on-connect event for session message
      
      * Better port
      
      * heartbeat and some renaming
      
      * transaction pool stuff
      
      * minor renaming.
      
      * report telemetry
      
      * cleanups.
      
      * Fix for previous cleanup
      
      * dump genesis, dev mode, renaming
      
      * Rework chain spec/config &c. to allow for genesis file loading.
      
      * Avoid producing genesis storage when unneeded
      
      * Allow reading JSON genesis state dumps
      
      * tests work again
      
      * better logging.
      
      * Fix wasm build.
      
      * Introduce PoC-1 spec
      
      * Made block message compatible with poc-1
      
      * Squashed changes for dumping genesis block.
      
      * Binaries.
      
      * Made block message compatible with poc-1
      
      * Remove dead code.
      
      * Fix bad merge.
      
      * Argument passing and returning values when invoking sandboxed funcs (#189)
      
      * Fixed block download sequence (#223)
      
      * Trie-based execution proof (#177)
      
      * TrieBasedBackend
      
      * trie tests
      
      * redunant return_value removed
      
      * use Trie::get_with to record trie proofs
      
      * Relaying tx/blocks by light clients (#190)
      
      * do not import external transactions into light tx pool
      
      * do not announce blocks on light clients
      
      * blocks_are_not_announced_by_light_nodes
      ff960d85
    • Svyatoslav Nikolsky's avatar
      Relaying tx/blocks by light clients (#190) · e6c79ba9
      Svyatoslav Nikolsky authored
      * do not import external transactions into light tx pool
      
      * do not announce blocks on light clients
      
      * blocks_are_not_announced_by_light_nodes
      e6c79ba9
  6. Jun 20, 2018
    • Gav Wood's avatar
      Telemetry (Slog + WS) (#217) · 48651dc4
      Gav Wood authored
      * Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
      
      * Update wasm.
      
      * consensus, session and staking all panic-safe.
      
      * Democracy doesn't panic in apply.
      
      * Fix tests.
      
      * Extra helper macro, council depanicked.
      
      * Fix one test.
      
      * Fix up all council tests. No panics!
      
      * Council voting depanicked.
      
      * Dispatch returns result.
      
      * session & staking tests updated
      
      * Fix democracy tests.
      
      * Fix council tests.
      
      * Fix up polkadot parachains in runtime
      
      * Fix borked merge
      
      * More Slicable support
      
      Support general `Option` and array types.
      
      * Basic storage types.
      
      * Existential deposit for contract creation
      
      * Basic implemnetation along with removals
      
      * Fix tests.
      
      * externalities builder fix.
      
      * Tests.
      
      * Fix up the runtime.
      
      * Fix tests.
      
      * Add generic `Address` type.
      
      * Initial function integration of Address into Extrinsic.
      
      * Fix build
      
      * All tests compile.
      
      * Fix (some) tests.
      
      * Fix signing.
      
      * Push error.
      
      * transfer can accept Address
      
      * Make Address generic over AccountIndex
      
      * Fix test
      
      * Make Council use Address for dispatch.
      
      * Fix build
      
      * Bend over backwards to support braindead derive.
      
      * Repot some files.
      
      * Fix tests.
      
      * Fix grumbles
      
      * Remove Default bound
      
      * Fix build for new nightly.
      
      * Make `apply_extrinsic` never panic, return useful Result.
      
      * More merge hell
      
      * Doesn't build, but might do soon
      
      * Serde woes
      
      * get substrate-runtime-staking compiling
      
      * Polkadot builds again!
      
      * Fix all build.
      
      * Fix tests & binaries.
      
      * Reserve some extra initial byte values of address for future format changes
      
      * Make semantic of `ReservedBalance` clear.
      
      * Fix panic handler.
      
      * Integrate other balance transformations into the new model
      
      Fix up staking tests.
      
      * Fix runtime tests.
      
      * Fix panic build.
      
      * Tests for demonstrating interaction between balance types.
      
      * Repot some runtime code
      
      * Fix checkedblock in non-std builds
      
      * Get rid of `DoLookup` phantom.
      
      * Attempt to make transaction_pool work with lookups.
      
      * Remove vscode settings
      
      * New attempt at making transaction pool work.
      
      * It builds again!
      
      * --all builds
      
      * Fix tests.
      
      * New build.
      
      * Test account nonce reset.
      
      * polkadot transaction pool tests/framework.
      
      * Initial draft (working).
      
      * Address grumbles.
      
      * Revert bad `map_or`
      
      * Rebuild binaries, workaround.
      
      * Avoid checking in vscode
      
      * reconnecting, shared, slog
      
      * CLI options for name and telemetry url
      
      * ensure telemetry url imples enabled
      
      * Avoid casting to usize early.
      
      * Provide on-connect event for session message
      
      * Better port
      
      * heartbeat and some renaming
      
      * transaction pool stuff
      
      * minor renaming.
      
      * report telemetry
      
      * cleanups.
      
      * Fix for previous cleanup
      
      * Initial draft (working).
      
      * Avoid checking in vscode
      
      * reconnecting, shared, slog
      
      * CLI options for name and telemetry url
      
      * ensure telemetry url imples enabled
      
      * Provide on-connect event for session message
      
      * Better port
      
      * heartbeat and some renaming
      
      * transaction pool stuff
      
      * minor renaming.
      
      * report telemetry
      
      * cleanups.
      
      * Fix for previous cleanup
      
      * Address grumble
      
      * Final grumble and repot telemetry to substrate
      
      * Fix comment
      
      * Please build, travis...
      48651dc4
  7. Jun 19, 2018
  8. Jun 18, 2018
    • Gav Wood's avatar
      Enumeratable accounts (#195) · 56918785
      Gav Wood authored
      * Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
      
      * Update wasm.
      
      * consensus, session and staking all panic-safe.
      
      * Democracy doesn't panic in apply.
      
      * Fix tests.
      
      * Extra helper macro, council depanicked.
      
      * Fix one test.
      
      * Fix up all council tests. No panics!
      
      * Council voting depanicked.
      
      * Dispatch returns result.
      
      * session & staking tests updated
      
      * Fix democracy tests.
      
      * Fix council tests.
      
      * Fix up polkadot parachains in runtime
      
      * Fix borked merge
      
      * More Slicable support
      
      Support general `Option` and array types.
      
      * Basic storage types.
      
      * Existential deposit for contract creation
      
      * Basic implemnetation along with removals
      
      * Fix tests.
      
      * externalities builder fix.
      
      * Tests.
      
      * Fix up the runtime.
      
      * Fix tests.
      
      * Add generic `Address` type.
      
      * Initial function integration of Address into Extrinsic.
      
      * Fix build
      
      * All tests compile.
      
      * Fix (some) tests.
      
      * Fix signing.
      
      * Push error.
      
      * transfer can accept Address
      
      * Make Address generic over AccountIndex
      
      * Fix test
      
      * Make Council use Address for dispatch.
      
      * Fix build
      
      * Bend over backwards to support braindead derive.
      
      * Repot some files.
      
      * Fix tests.
      
      * Fix grumbles
      
      * Remove Default bound
      
      * Fix build for new nightly.
      
      * Make `apply_extrinsic` never panic, return useful Result.
      
      * More merge hell
      
      * Doesn't build, but might do soon
      
      * Serde woes
      
      * get substrate-runtime-staking compiling
      
      * Polkadot builds again!
      
      * Fix all build.
      
      * Fix tests & binaries.
      
      * Reserve some extra initial byte values of address for future format changes
      
      * Make semantic of `ReservedBalance` clear.
      
      * Fix panic handler.
      
      * Integrate other balance transformations into the new model
      
      Fix up staking tests.
      
      * Fix runtime tests.
      
      * Fix panic build.
      
      * Tests for demonstrating interaction between balance types.
      
      * Repot some runtime code
      
      * Fix checkedblock in non-std builds
      
      * Get rid of `DoLookup` phantom.
      
      * Attempt to make transaction_pool work with lookups.
      
      * Remove vscode settings
      
      * New attempt at making transaction pool work.
      
      * It builds again!
      
      * --all builds
      
      * Fix tests.
      
      * New build.
      
      * Test account nonce reset.
      
      * polkadot transaction pool tests/framework.
      
      * Address grumbles.
      
      * Revert bad `map_or`
      
      * Rebuild binaries, workaround.
      
      * Avoid casting to usize early.
      
      * reenable sync tests
      56918785
  9. Jun 06, 2018
    • Gav Wood's avatar
      Make substrate generic (#169) · 521e3a23
      Gav Wood authored and asynchronous rob's avatar asynchronous rob committed
      * Some initial work on RPC and client
      
      * Rephrase as params
      
      * More work on traitifying substrate.
      
      * Traitify in_mem.rs
      
      * traitify client.rs
      
      * Make new primitives (mainly traits) build again.
      
      * Many (superficial) build fixes throughout.
      
      * Fix remaining build issues up to bft interface.
      
      * Make bft primitives be generic.
      
      * Switch out MisBehaviorReport for generic version.
      
      * Merge Hashing into Header.
      
      * Update runtime for new generics (with Hashing).
      
      * Update demo runtime.
      
      * Make runtime compile.
      
      * Build fixes for runtime
      
      * Remove old modules.
      
      * port substrate-bft to use generic substrate types
      
      * port client
      
      * port substrate-test-runtime
      
      * mostly port test-runtime to get compiling for std
      
      * Ensure `AccountId` has a `Default`.
      
      * Fix type deps.
      
      * finish porting
      
      * initialize test_runtime from genesis correctly
      
      * remove commented code
      
      * maybe unsigned signatures
      
      * runtimes compile
      
      * port over most of network
      
      * serialization for generic types
      
      * fix comment
      
      * remove some unnecessary trait bounds
      
      * network compiles
      
      * tests compile for sync
      
      * fix deserialization
      
      * temporarily remove deserialize derives
      
      * workarounds for serde issues for deriving deserialization
      
      * get demo-runtime compiling on std
      
      * port extrinsic-pool
      
      * primitives reshuffling
      
      * get network compiling again
      
      * remove debugging file
      
      * runtime tests now passing
      
      * port client-db
      
      * start to port over substrate-rpc
      
      * mostly port over PolkadotApi
      
      * test_runtime follows normal conventions
      
      * substrate runtime tests pass
      
      * deal with inherent extrinsics correctly in polkadot-api
      
      * port transaction-pool
      
      * port polkadot-consensus
      
      * port substrate-rpc
      
      * everything compiles
      
      * tests compile
      
      * fix grumbles
      
      * test-runtime uses its own transfer type
      
      * switch to master branch of jsonrpc
      
      * fix network tests and some warnings
      
      * all tests pass locally
      
      * [ci-skip] add another comment about issue
      
      * remove some curlies
      521e3a23
  10. May 31, 2018
    • Tomasz Drwięga's avatar
      Extrinsic pool (#182) · d8e352fa
      Tomasz Drwięga authored
      * Use latest version of txpool.
      
      * Initial version of the pool.
      
      * Fix abstraction.
      
      * Implement watchers and notifications.
      
      * Return hash from RPC.
      
      * Remove commented code.
      
      * Remove client dep.
      
      * Fix tests.
      d8e352fa
    • Gav Wood's avatar
      Public extrinsic apply doesn't panic (#178) · 3de2b3bb
      Gav Wood authored
      * Merge remote-tracking branch 'origin/master' into gav-xts-dont-panic
      
      * Update wasm.
      
      * consensus, session and staking all panic-safe.
      
      * Democracy doesn't panic in apply.
      
      * Fix tests.
      
      * Extra helper macro, council depanicked.
      
      * Fix one test.
      
      * Fix up all council tests. No panics!
      
      * Council voting depanicked.
      
      * utilise hygene
      3de2b3bb
  11. May 29, 2018
  12. May 28, 2018
  13. May 25, 2018
    • asynchronous rob's avatar
      Minimal parachain framework part 1 (#113) · f41a4959
      asynchronous rob authored
      * dynamic inclusion threshold calculator
      
      * collators interface
      
      * collation helpers
      
      * initial proposal-creation future
      
      * create proposer when asked to propose
      
      * remove local_availability duty
      
      * statement table tracks includable parachain count
      
      * beginnings of timing future
      
      * finish proposal logic
      
      * remove stray println
      
      * extract shared table to separate module
      
      * change ordering
      
      * includability tracking
      
      * fix doc
      
      * initial changes to parachains module
      
      * initialise dummy block before API calls
      
      * give polkadot control over round proposer based on random seed
      
      * propose only after enough candidates
      
      * flesh out parachains module a bit more
      
      * set_heads
      
      * actually introduce set_heads to runtime
      
      * update block_builder to accept parachains
      
      * split block validity errors from real errors in evaluation
      
      * update WASM runtimes
      
      * polkadot-api methods for parachains additions
      
      * delay evaluation until candidates are ready
      
      * comments
      
      * fix dynamic inclusion with zero initial
      
      * test for includability tracker
      
      * wasm validation of parachain candidates
      
      * move primitives to primitives crate
      
      * remove runtime-std dependency from codec
      
      * adjust doc
      
      * polkadot-parachain-primitives
      
      * kill legacy polkadot-validator crate
      
      * basic-add test chain
      
      * test for basic_add parachain
      
      * move to test-chains dir
      
      * use wasm-build
      
      * new wasm directory layout
      
      * reorganize a bit more
      
      * Fix for rh-minimal-parachain (#141)
      
      * Remove extern "C"
      
      We already encountered such behavior (bug?) in pwasm-std, I believe.
      
      * Fix `panic_fmt` signature by adding `_col`
      
      Wrong `panic_fmt` signature can inhibit some optimizations in LTO mode.
      
      * Add linker flags and use wasm-gc in build script
      
      Pass --import-memory to LLD to emit wasm binary with imported memory.
      
      Also use wasm-gc instead of wasm-build.
      
      * Fix effective_max.
      
      I'm not sure why it was the way it was actually.
      
      * Recompile wasm.
      
      * Fix indent
      
      * more basic_add tests
      
      * validate parachain WASM
      
      * produce statements on receiving statements
      
      * tests for reactive statement production
      
      * fix build
      
      * add OOM lang item to runtime-io
      
      * use dynamic_inclusion when evaluating as well
      
      * fix update_includable_count
      
      * remove dead code
      
      * grumbles
      
      * actually defer round_proposer logic
      
      * update wasm
      
      * address a few more grumbles
      
      * grumbles
      
      * update WASM checkins
      
      * remove dependency on tokio-timer
      f41a4959
  14. May 24, 2018
  15. May 09, 2018
  16. May 07, 2018
    • Gav Wood's avatar
      Fixes and improvements for PoC-1 Testnet (#143) · 49cef2ea
      Gav Wood authored
      * Fix initialisations and add a test.
      
      * Fix test.
      
      * Fix overflow bug.
      
      * Minor refactoring and fixes.
      
      * Fix vote threshold.
      
      * Add note.
      
      * Fixes for latest rust and the readme.
      
      * Better readme.
      
      * An extra validator for PoC-1
      
      * Update README.
      
      * PoC-1 bootnodes.
      
      * don't return async::notready for messages without scheduling wakeup
      
      * Fix endowed account
      
      * give polkadot control over round proposer based on random seed
      
      * address grumbles.
      49cef2ea
  17. May 02, 2018
    • Arkadiy Paronyan's avatar
      Database backend (#133) · a80e9be3
      Arkadiy Paronyan authored
      * DB backend
      
      * DB backend
      
      * Cleanup
      
      * Clean build files after running tests
      
      * Fixed comment
      
      * add OOM lang item to runtime-io
      a80e9be3
  18. Apr 18, 2018
  19. Apr 16, 2018
  20. Apr 15, 2018
  21. Apr 14, 2018
  22. Apr 13, 2018
    • Gav Wood's avatar
      Add chain RPCs and getHeader. (#124) · 95a5d8aa
      Gav Wood authored
      * Add chain RPCs and getHeader.
      
      Also:
      - finish renaming transaction -> extrinsic;
      - rejig development chain spec to be more useful.
      
      * Fix.
      
      * Remove invalid comments.
      
      * Fix.
      95a5d8aa
  23. Apr 12, 2018
  24. Apr 11, 2018
  25. Apr 06, 2018
    • Arkadiy Paronyan's avatar
      Consensus message buffering and more (#114) · 465e2c3c
      Arkadiy Paronyan authored
      * CLI options and keystore integration
      
      * Replace multiqueue with future::mpsc
      
      * BFT gossip
      
      * Revert to app_dirs
      
      * generate_from_seed commented
      
      * Refactor event loop
      
      * Start consensus by timer
      
      * Message buffering
      
      * Minor fixes
      
      * Work around duty-roster issue.
      
      * some more minor fixes
      
      * fix compilation
      
      * more consistent formatting
      
      * make bft input stream never conclude
      
      * Minor fixes
      
      * add timestamp module to executive
      
      * more cleanups and logging
      
      * Fixed message propagation
      465e2c3c
  26. Apr 05, 2018
  27. Apr 03, 2018
    • Arkadiy Paronyan's avatar
      BFT gossip (#106) · 719cd174
      Arkadiy Paronyan authored and asynchronous rob's avatar asynchronous rob committed
      * CLI options and keystore integration
      
      * Replace multiqueue with future::mpsc
      
      * BFT gossip
      
      * Revert to app_dirs
      
      * generate_from_seed commented
      719cd174
  28. Mar 30, 2018
    • Arkadiy Paronyan's avatar
      Polkadot service (#82) · d3f3cb71
      Arkadiy Paronyan authored and asynchronous rob's avatar asynchronous rob committed
      * Block import notifications
      
      * Build fix
      
      * Consensus messages supported in the networking
      
      * Started consensus service
      
      * BFT service
      
      * Transaction propagation
      
      * Polkadot service
      
      * CLI integration
      
      * Build fix
      
      * Added signatures validation
      
      * Removed executor argument
      
      * Refactored steam loops; Queue size increased
      
      * Limit queue size
      
      * Fixed doc comment
      
      * Fixed wasm build
      
      * Fixed wasm build
      
      * Check id properly
      d3f3cb71