Skip to content

Latest commit

 

History

History
599 lines (453 loc) · 25.8 KB

changelog.md

File metadata and controls

599 lines (453 loc) · 25.8 KB

BitDust Change Log

2019-04-27 Veselin Penev penev.veselin@gmail.com

  • populating few more events from transport.gateway (#320)
  • more fixes in network services (#319)

2019-04-20 Veselin Penev penev.veselin@gmail.com

  • minor changes in logging and events
  • bug fix in my_keys (#317)
  • make sure suppliers receive and register my customer public key every time (#316)

2019-04-13 Veselin Penev penev.veselin@gmail.com

  • added new feature: backup/restore/sync my keys to suppliers encrypting with my "master" key (#313)
  • reorganized service_private_messages()
  • populate "my-keys-synchronized" event
  • added service_keys_storage()
  • added service_message_history()
  • disabled few unused services, development to be contunue later (#312)

2019-04-09 Veselin Penev penev.veselin@gmail.com

  • updated Copyright period to 2008-2019
  • bug fix in /message/history/v1
  • added test for search users
  • made regression test setup more reliable
  • do not load all local keys at startup
  • reading remote matrix for shared files to be able to show availability
  • updated online_status() automat : reduce amount of "ping" packets sent to offline users
  • added /config/tree/v1 endpoint
  • improved config/*/v1 and service/list/v1 endpoints
  • added ~/.bitdust/logs/packet.log to debug/monitor p2p traffic
  • added ~/.bitdust/logs/event.log

2019-03-28 Veselin Penev penev.veselin@gmail.com

  • improved config/list/v1 endpoint
  • changed contact_status() state machine and added bug fix in family_member()
  • added more info in file/list/v1 api,
  • enabled CRITICALLY_OFFLINE supplier replacing feature (#291)
  • bug fix in service_employer() (#290)
  • home folder on Android is /storage/emulated/0/ (#288)
  • updated setup.py (#286)
  • added more flexibility in main.bpmain (#285)
  • bug fix in crypt.encrypted.Block unserialize, clean up in parallelp code (#283)
  • added more logging for jsn serialization and signatures verification issues debugging (#282)
  • rebuilt raid_worker() to use parallelp instead of multiprocessing (#281)
  • fixed .travis.yml
  • able to set python version for unit tests on travis
  • rebuilt raid_worker() to use parallelp instead of multiprocessing
  • copied and adopted parallelp 1.5.7 sources in the code base, thanks to Vitalii Vanovschi
  • removed pybc blockchain files, we are moving towards Bismuth project
  • fix bug in chat messages (#279)
  • passing text arguments to child_process() (#277)
  • fixes in raid and backup/restore pipe (#274)

2019-03-01 Veselin Penev penev.veselin@gmail.com

  • use asyncio for test suit initialization to run tests faster
  • fix in stun_server() machine
  • populate opened UDP ports in network/info/v1 API
  • fallback flow in stun method : use ID servers to recognize my external IP

2019-02-27 Veselin Penev penev.veselin@gmail.com

  • added fallback flow in stun method - use ID servers to recognize my external IP
  • py3 fix in tar pipe
  • bug fix in encryption code
  • windows fixes

2019-03-01 Veselin Penev penev.veselin@gmail.com

  • use asyncio for test suit initialization to run tests faster
  • fix in stun_server() machine
  • populate opened UDP ports in network/info/v1 API
  • fallback flow in stun method : use ID servers to recognize my external IP

2019-02-27 Veselin Penev penev.veselin@gmail.com

  • added fallback flow in stun method - use ID servers to recognize my external IP
  • py3 fix in tar pipe
  • bug fix in encryption code
  • windows fixes

2019-02-25 Veselin Penev penev.veselin@gmail.com

  • py3 and windows bug fixes
  • bump twisted version to 18.7.0
  • fallback scenario in chat history to be able to recreate local db in case of migrations

2019-02-16 Veselin Penev penev.veselin@gmail.com

  • bug found and fixed in customer/data_sender.py
  • get rid of data_sender.log
  • all suppliers must be already hired before you start uploading
  • few more py3 bug fixes
  • more stability in service_shared_data()

2019-02-14 Veselin Penev penev.veselin@gmail.com

  • BitDust is Python3 compatible now!
  • reorganization in dht_service.py
  • switched kademlia DHT keys from binary digest() to string hexdigest() format
  • get rid of pickle in kademlia DHT
  • switched kademlia DHT KBucket size from 8 to 4
  • get rid of builtin json module in favor of lib.serialization and lib.jsn
  • switched OptimizedTreeRoutingTable() to TreeRoutingTable()
  • introduce "revision" field in DHT DB: check/update "revision" on closest nodes on every search
  • do not publish my identity source in DHT, only my IDURL
  • print all stored in DHT key:value pairs from all nodes after regression test finished
  • redirecting stdout to .bitdust/logs/stdout.log file for "bitdust daemon" command
  • added timeout=30 parameter to api.share_grant()
  • changed dependecies of service_keys_registry() - moved up in the services tree

2019-01-17 Veselin Penev penev.veselin@gmail.com

  • added more regression tests
  • a lot of fixes/improvements in DHT code
  • introduced DHT key-value store/request validation methods
  • software must not use default suppliers number and default ecc_map in the real-time logic
  • some updates in state machines around the code
  • minor fixes api methods
  • added copyrights for some files for Stanislav Evseev, Veselin Penev
  • report number of warnings/errors/exceptions from containers in the end of regression test
  • all state changed callbacks must also use "*args, **kwargs" instead of "args"
  • switched all state machines to *args, **kwargs notation instead of single arg=None input
  • a lot of work with family_member() machine

2018-12-23 Veselin Penev penev.veselin@gmail.com

  • bug fix in dht_relations

2018-12-22 Veselin Penev penev.veselin@gmail.com

  • better logging in DHT
  • bug fix DHT configuration
  • better logging of api calls
  • tuning DHT service
  • added p2p-alice.ai to the main network seeds
  • more stable regression tests

2018-12-21 Veselin Penev penev.veselin@gmail.com

  • able to restore identity again : added "stun my IP" step in id_restorer()
  • added regression tests for private messages
  • fix in "bitdust stop" command
  • testing main network

2018-12-16 Veselin Penev penev.veselin@gmail.com

  • created networks.json file to store info about "genesis" nodes
  • moved p2p-id.ru and bitdust.ai to the main network
  • bug fixes proxy_router()
  • added retries=2 to propagate.PingContact()
  • added check for service_proxy_transport() in network/connected/v1
  • stabilyzing regression tests
  • removed parallelp lib from the repo
  • switched tests from run_ssh_curl_and_wait() to requests.get()/post()
  • added ssh tunnels to regression tests
  • use settings.getPrivateKeySize() in my_keys.generate_key()
  • state machine core event() method will properly trigger state changed callbacks when closing automat instance
  • added revision and publisher fields in dht record of customer family
  • supplier to be notified about his position in the family by customer
  • service_employer() will report supplier position to service_customer_family()
  • rebuilding supplier service in order to reduce DHT queries and build customer family logic
  • added make regression_test target
  • building healt_check() method for every network service
  • added tests for restore identity

2018-11-10 Veselin Penev penev.veselin@gmail.com

  • ported to Python3.6 finally (Python2.7 also supported) !!!
  • speed up raid workers (Stanislav Evseev)
  • switched from parallelp to the built-in multiprocessing (Stanislav Evseev)
  • turn on proxy server by default for all nodes, updated seed nodes
  • built more unit tests
  • "make test" command will also execute "python bitdust.py install" first
  • use global python to run unit tests
  • run unit tests on travis
  • transition from pickle to json
  • new regression tests based on docker containers (Stanislav Evseev)
  • CI/CD integration with travis
  • detect current python version in deploy script and use it
  • added system.deploy module to isolate everythng related to "python bitdust.py install" command
  • Add chat-history endpoint (Anton Grishun)
  • slow down DHT traffic
  • added space_donated(), space_consumed() and space_local() methods to REST HTTP API
  • added api method identity_backup(), tested recover identity
  • bug fix : correctly load/save list of my suppliers
  • randomize tcp, udp, http, dht and blockchain port numbers during startup
  • Added environment variable to access to internal api interface
  • added bitrex.ai to dht seed nodes (by Renato Cardoso)
  • added CodernityDB3 fork to code base

2018-07-28 Veselin Penev penev.veselin@gmail.com

  • added more known id servers
  • added smoketestdht in Makefile
  • added event "shared-list-files-received"
  • added events "share-connected", "share-disconnected"
  • added events "private-key-shared" and "private-key-share-failed"
  • add simple health-check method
  • isolated SSL dependecies in old/unused methods in lib.net_misc
  • make possible to register new identity on local ID server
  • store public keys in OpenSSH format and private keys in PEM
  • use pickle instead of base64 to serialize encrypted data
  • backward incompatible !!!!!!!!!!!!!!!! : reimplement encryption, use pycryptodomex instead of pycrypto, bump twisted version in requirements
  • clean up, removed old "UI experiments" based on Django framework
  • installing virtualenv isolated
  • updated blockchain/trinity/deploy_linux.sh
  • pyethapp is dead, testing trinity which is python3.6
  • experiments with pyethapp blockchain tool
  • added file/download/v1 api method
  • encoding fix: always set UTF8 as default locale
  • executable file name fix in few places to make windows electron platform working
  • added api.shell() method to be able to debug in real time
  • added task for tracking network statuses and reconnect network service
  • updated list of seed nodes
  • wraping stored data with extra layer when supplier returning back saved files in order to route it correctly
  • sending pub keys to suppliers when required
  • loading suppliers of other known customers at start up
  • added callback_id in the automat class
  • temporary disabled "CRITICALLY_OFFLINE" supplier dismiss fearure
  • added all_customers parameter to api.file_list() API
  • limit twisted<18 in requirements.txt
  • added timer fallback in network_connector()
  • added method API method network/details
  • added api method user_status_check()
  • added api.identity_list() method
  • rebuilt dht service and added key-value expiration flow
  • added cancel() method to service_supplier_relations() to be able to clean up junk dht records
  • updated file_upload/file_download API methods so they will be able to open share before start
  • improving files synchronization logic
  • disabled services/udp-transport by default, services/proxy-transport should be used now by default
  • stop publishing "supplier-file-modified" event, more smart fire_hire()
  • added share_list() and share_create() api mothods, adjusted key_id format validation
  • added id server bitrex.ai:8084
  • shared file download is working !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • fixed api.message_send(), packet_in.process() to be able to cache input packet creator identity
  • in service_supplier() external customer must be able to request Data()
  • service_supplier() able to send shared data to external customer
  • bump dht protocol version to 5
  • publishing my active eccmap in dht relations
  • added DetectSupplierPosition() to be able to connect to external suppliers
  • bump dht protocol version to 4
  • modified stun client code to use randomized udp and dht port numbers
  • added lg.args() method, testing DHT methods
  • added DHT methods to work with validated json data
  • added clean up in dht_relations()
  • refactored Files() command - must be encrypted now
  • must be able to request 0 bytes from supplier
  • working with file sharing

2018-04-16 Veselin Penev penev.veselin@gmail.com

  • refactoring/improvements/new api methods, building file share methods, supporting new UI based on electron framework
  • switched from restore() to restore_worker()
  • added data_receiver() machine
  • updated packet_out() : use cached copy of the remote identity only if it is fresh - if older than 60 sec then cache again
  • randomized backups fs id
  • added api methods to exchange json messages
  • added api methods to get/set my nickname
  • improved performance of api.user_search()
  • added rest method for adding/removing users from list of contacts
  • save backup index in service_customer()
  • also storing locally a list files from other customers
  • processing ListFiles() command also in service_customer()
  • added service_shared_data(), testing shared_access_donor() machine
  • added api.share_open() and api.share_history() interfaces
  • added Packets field to signed.Packet to store outgoing transfers
  • building shared_access_coordinator()
  • added response timeout callback methods to packet_out and catching that in key_audit() now
  • able to audit master key as well
  • added api.transfers_list() to be able to test/debug file uploads/downloads process
  • destination_folder is not a mandatory in api.file_download_start()
  • added api.key_audit() method
  • added AuditKey() command, working with key_ring, added method to test validate keys on remote machines
  • added access/shared_access_coordinator.py
  • rework event id format in the p2p queue, publish events from the blockchain
  • working with blockchain, registering own identity in the blockchain if possible (mine a block if not enough coins)
  • miners should only generate blocks if some transactions are pending
  • Added service_blockchain() based on PyBC open source project - basic implementation of blockchain technology
  • added file_download_start() and file_download_stop() to REST HTTP API
  • set normalize_key_alias=True everywhere : force to send key_alias in packetID
  • updated ListFiles()/Files() commands so that they also processing key_alias parameter
  • change storage location for customer's file : also depend on key_alias
  • handling of Event() packets in service_p2p_notifications() only
  • add logging in automat.startTimers()
  • Big change! refactor p2p services requests : use generic json structures instead of plain strings
  • added methods to connect producer with given queue
  • added api.queue_list()
  • added global_id.ParseGlobalQueueID(queue_id) method, fix in my_keys
  • make api.network_connected() workin properly and return valid status based on p2p_connector().state
  • improved api.service_restart() method, added wait_timeout parameter with default value 10 seconds
  • generate events when your contacts got changed
  • added flexibility to crypt.signed.Packet : you can use specific key to sign your data now, not only your master key
  • finilized design of the queue_id: {queue_alias}&{owner_id}&{supplier_id}
  • set service_p2p_notifications enabled by default
  • change dependecy for service_supplier - it must depend on service_p2p_notifications also
  • add CORS to REST HTTP API, work with p2p_queue, fixes
  • added /event/send/<event_id>/v1 API HTTP method
  • added response_timeout argument to packet_out()
  • added Event() to p2p.commands
  • skip command handling in p2p_service, logic distributed to the services
  • added p2p_queue.py, refactoring
  • publish events from id_restorer() and id_registrator()
  • added api.event_listen(), possible to publish event when state machine change state, work on api.service_restart()
  • modified initializer() machine logic: start bitdust process even if local identity is not exist, added API methods to create/recover identity
  • disabled Django WEB UI interface, we are building new UI based on Electron
  • added service_p2p_notifications()

2018-01-14 Veselin Penev penev.veselin@gmail.com

  • added id server blog.bitdust.io, removed id server whmcs.whois.ai
  • fixed DHT init/connect scripts,
  • limit twisted and django versions in requirements, set --index-url=https://pypi.python.org/simple/ in deployment script
  • proper handling customer location of ".bitdust" folder

2017-11-27 Veselin Penev penev.veselin@gmail.com

  • added few options in services/identity-propagate/ branch
  • updated id_registrator() to be able to contol your identity sources via settings
  • now identitycache will erase all local files on startup
  • added "identity server" in command line interface to run id server locally
  • added "identity backup" in command line interface
  • added setup.py
  • added git mirror on: dev.bitdust.io/code/devel (dev)
  • added git mirror on: bitbucket.org/bitdust_io/devel (bitbucket)
  • added git mirror on: gitlab.com/bitdust/devel (gitlab)
  • added api /key/*/v1 REST methods, tested again key_ring sharing
  • added api /config/*/v1 REST methods
  • added txrestapi, added REST HTTP server for serving api.* methods in interface/rest_http_server.py, updated settings
  • get rid of stun_client_RFC3489 dependency! only STUN from BitDust nodes now
  • removed shtoom and stun_rfc_3489 files from repo
  • added list of known id servers in idserver WEB front-end
  • added api.network_stun() method to detect and report your current external IP
  • added new api.message_*() methods for further development of the GUI
  • added chat/message_keeper.py to store message history
  • fixes in service_identity_server()
  • fixes/imporvements in identitycache.py
  • fixes/improvements related to global id
  • fixes in lookup.py
  • fixes in api.file_create()
  • fixes in cmd_deploy()
  • fixes in backup_fs.py
  • fixes in transport/proxy/
  • fixes in transport/tcp/
  • updated help.py

2017-10-31 Veselin Penev penev.veselin@gmail.com

  • added known id server at veselin-p2p.ru
  • changes in bppipe.py : store files and folders in tar archive with modified names
  • error fallback flow added in restore() automat
  • MAJOR CHANGE !!! ALL Enrypted customers data stored on suppliers is PUBLICLY SHARED now!
  • added feature : encrypt private message with recipient master key or another known key
  • bug fix in id_registrator()
  • fixes in chat, more transport logs
  • removed id serverd on bitdust.io:8084
  • adjusted default settings : run proxy transport by default
  • fixes in service_nodes_lookup(), service_proxy_transport() % jqchat and UI fixes
  • updated interface.ftp_server according to new api interface methods
  • added api.file_*() commands
  • removed api.backup_*() commands
  • removed api.restore_*() commands
  • added userid/global_id.py
  • BOOM! backupID/pathID format change: 0/0/1/0/F20131120053803PM -> alice@idhost.org:0/0/1/0/F20131120053803PM
  • added service_supplier_relations()
  • cmd line fixes for "files" command

2017-08-23 Veselin Penev penev.veselin@gmail.com

  • added colors to terminal logs
  • added "service_keys_registry" request in the API key_share() method flow
  • added private keys managment commands to API methods
  • storing catalog index in json format now
  • store key_id in the catalog
  • implemented multiple encryption/decryption keys in backup index
  • added access/key_ring.py
  • added service_keys_registry()
  • added local FTP server and FTP interface bridge to access distributed data via FTP client
  • added Query class to contract_chain_node
  • software should be autmatically restarted after receiving an update
  • added logging to git_proc, git_proc will start in 30 sec after startup
  • changed "git reset --hard" to "git rebase origin/master" in git_proc.py
  • added coins_index.py, working on coins storage, codernity db indexes now are located in the source code
  • added added contract_chain_node.py
  • fix in accountant_node() to prevent infinite loop
  • added contract_chain_consumer() automat
  • added service_contract_chain()
  • added service_customer_contracts()
  • added service_supplier_contracts()
  • added state machine p2p_service_seeker()
  • added simple global events system with listeners
  • added Coin() and RetreiveCoin() commands
  • change in broadcaster_node() automat, improved lookup and dht code, default N of broadcasters set to 3
  • fix in storage/backup_matrix.py
  • update help/usage, added "install" command to cmd_line interface
  • setup a virtual environment folder in ~/.bitdust/venv/ to isolate BitDust software from system Python
  • added one seed node
  • started playing with Ethereum, continue working on contracts chains

2017-03-04 Veselin Penev penev.veselin@gmail.com

  • migration of genezis nodes to another vps machines
  • added new configs under api/json-rpc-server/
  • bug fix in restore backup flow
  • removed unused id server conf scripts/docs, a new doc page added instead
  • hot fix in logging
  • added customer_assistant() automat to service_customer_support()

2016-12-14 Veselin Penev penev.veselin@gmail.com

  • improve gui, added progress bars for in/out streams
  • huge changes in UPD streaming: improve performance, stability - it is working now actualy!
  • bug fixes in TCP transport as well
  • pep8 auto fixes for all .py files
  • added index_synchronizer() machine to replace backup_db_keeper()
  • remove old unused options from settings
  • adjust packet_out automat
  • adjust events in contact_status automat
  • added another packet type (Command) for proxy transport : Relay()
  • keep working on proxy transport

2016-10-23 Veselin Penev penev.veselin@gmail.com

  • bug fixes in settings and fire_hire machine
  • updated README
  • start working on crypto coins

2016-09-18 Veselin Penev penev.veselin@gmail.com

  • publish Python sources under GNU AGPL v3!

2016-09-04 Veselin Penev penev.veselin@gmail.com

  • added nodes_lookup() service
  • added broadcasting() service
  • added broadcast_listener() state machine
  • added broadcaster_node() automat
  • added broadcasters_finder() state machine
  • fixes in git update procedures
  • updated employer() service dependencies
  • slow down bptester process a little bit
  • more clean shutdown of all state machines
  • bitdust api will print all api methods in cmd line
  • fix loging in network_connector()
  • fix service_udp_transport() - now it should finish stun process firstly and then go further
  • modified "integrate" command, it should not create a file but print to stdout

2016-07-16 Veselin Penev penev.veselin@gmail.com

  • added text chat via command line
  • bug fix in UDP transport
  • added scripts to build commits history
  • lots new API methods
  • made port to Mac OS
  • updates in ubuntu package

2016-05-04 Veselin Penev penev.veselin@gmail.com

  • built a new Web Site for BitDust project: https://bitdust.io
  • new project Logo!
  • lots methods added to API
  • updated/improved command line interface
  • made a stable port for MacOS
  • fixed several major bugs in p2p networking code
  • switched software updating to use "git" - distribute Python sources to end-users
  • created a new Windows installer archive
  • continue working on new GUI based on Django

2015-07-05 Veselin Penev penev.veselin@gmail.com

  • a lot of changes in the code, many things were turned off temporary
  • switched API to JSON interface finally at interface/jsonrpc_server.py
  • interface/cmd_line_json.py now uses lib.jsontemplate module to render content
  • added Django to the project - now GUI interface is using WEB Browser (I was thinking about that stuff in 2010!)
  • added Bootstrap to make a simple and nice looking design
  • created jqchat and several other Django apps in the bitdust/web/ folder
  • created a new deployment script : bitdust/deploy/windows_devel
  • created a new binary installer : bitdust/deploy/windows_innosetup
  • oh! by the way! The project was renamed from BitPie.NET to BitDust!

2014-11-23 Veselin Penev penev.veselin@gmail.com

  • KEY FEATURE: software core is transformed into a system of interrelated services
  • made upgrade on stun client - multiple stun requests at same time to increase performance
  • changed user settings engine, now it is splited on single files in sub folder: .bitdust/config/
  • many fixes in GUI and command line interface
  • hash method was changed from MD5 to SHA1
  • added a small feature - can request a single random packet for given backup from GUI

2014-10-21 Veselin Penev penev.veselin@gmail.com

  • fixed messages - p2p chat is working now!
  • did small fixes in: GUI, DHT code, API
  • changed UDP PING timeout again, from 1 minute to 30 seconds

2014-10-17 Veselin Penev penev.veselin@gmail.com

  • a bug fix in the backups, error when trying to add a network location under Windows
  • make developer reports working again, set up a script https://bitdust.io/cgi-bin/feedback.py
  • changed UDP PING timeout from 10sec to 1 minute
  • small fixes in the command line interface

2014-10-15 Veselin Penev penev.veselin@gmail.com

  • fixed error in registration part

2014-10-10 Veselin Penev penev.veselin@gmail.com

  • switched on a new improrved UDP transport - can use UDP to transfer packets now
  • upgrade messaging service - safe p2p encrypted chat
  • added command line support to send/list messages

2014-08-20 Veselin Penev penev.veselin@gmail.com

  • new tray icons for Microsoft Windows

2014-10-10 Veselin Penev veselin@bitdust.io

  • switched on a new improved UDP transport - can use UDP to transfer packets now
  • upgrade messaging service - safe p2p encrypted chat
  • added command line support to send/list messages

2014-08-20 Veselin Penev veselin@bitdust.io

  • start tracking of change log history
  • prepared a Demo version with GUI interface
  • new tray icons for Microsoft Windows