Challenges and strategies for developing decentralized applications based on blockchain technology